aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md1
-rw-r--r--src/components/settings/settings/EditSettingsForm.js1
-rw-r--r--src/config.js1
-rw-r--r--src/containers/settings/EditSettingsScreen.js10
-rw-r--r--src/i18n/locales/defaultMessages.json53
-rw-r--r--src/i18n/locales/en-US.json3
-rw-r--r--src/i18n/messages/src/containers/settings/EditSettingsScreen.json53
-rw-r--r--src/stores/ServicesStore.js13
8 files changed, 92 insertions, 43 deletions
diff --git a/README.md b/README.md
index 5ac604d91..d171b3fee 100644
--- a/README.md
+++ b/README.md
@@ -24,6 +24,7 @@ You can find the installers in the [latest release](https://github.com/kytwb/fer
24- [x] Removes pages begging you to donate after registration 24- [x] Removes pages begging you to donate after registration
25- [x] Makes all users Premium by default 25- [x] Makes all users Premium by default
26- [x] [Add option to change server to a custom](https://github.com/kytwb/ferdi/wiki/Custom-Server) [ferdi-server](https://github.com/vantezzen/ferdi-server) 26- [x] [Add option to change server to a custom](https://github.com/kytwb/ferdi/wiki/Custom-Server) [ferdi-server](https://github.com/vantezzen/ferdi-server)
27- [x] Add "Private Notification"-Mode, that hides message content from notifications (as suggested in [meetfranz/franz#879](https://github.com/meetfranz/franz/issues/879))
27- [x] Remove "Franz is better together" popup 28- [x] Remove "Franz is better together" popup
28- [x] [Makes it possible to edit the "Franz Todo" server](https://github.com/kytwb/ferdi/wiki/Custom-Todo) 29- [x] [Makes it possible to edit the "Franz Todo" server](https://github.com/kytwb/ferdi/wiki/Custom-Todo)
29- [x] Makes RocketChat self-hosted generally available 30- [x] Makes RocketChat self-hosted generally available
diff --git a/src/components/settings/settings/EditSettingsForm.js b/src/components/settings/settings/EditSettingsForm.js
index accd0d187..b026222c3 100644
--- a/src/components/settings/settings/EditSettingsForm.js
+++ b/src/components/settings/settings/EditSettingsForm.js
@@ -172,6 +172,7 @@ export default @observer class EditSettingsForm extends Component {
172 <Toggle field={form.$('autoLaunchOnStart')} /> 172 <Toggle field={form.$('autoLaunchOnStart')} />
173 <Toggle field={form.$('runInBackground')} /> 173 <Toggle field={form.$('runInBackground')} />
174 <Toggle field={form.$('enableSystemTray')} /> 174 <Toggle field={form.$('enableSystemTray')} />
175 <Toggle field={form.$('privateNotifications')} />
175 {process.platform === 'win32' && ( 176 {process.platform === 'win32' && (
176 <Toggle field={form.$('minimizeToSystemTray')} /> 177 <Toggle field={form.$('minimizeToSystemTray')} />
177 )} 178 )}
diff --git a/src/config.js b/src/config.js
index 06b4b79a9..3e0000a57 100644
--- a/src/config.js
+++ b/src/config.js
@@ -36,6 +36,7 @@ export const DEFAULT_APP_SETTINGS = {
36 runInBackground: true, 36 runInBackground: true,
37 enableSystemTray: true, 37 enableSystemTray: true,
38 minimizeToSystemTray: false, 38 minimizeToSystemTray: false,
39 privateNotifications: false,
39 server: LIVE_API, 40 server: LIVE_API,
40 todoServer: PRODUCTION_TODOS_FRONTEND_URL, 41 todoServer: PRODUCTION_TODOS_FRONTEND_URL,
41 showDisabledServices: true, 42 showDisabledServices: true,
diff --git a/src/containers/settings/EditSettingsScreen.js b/src/containers/settings/EditSettingsScreen.js
index d03b01539..73385d7b8 100644
--- a/src/containers/settings/EditSettingsScreen.js
+++ b/src/containers/settings/EditSettingsScreen.js
@@ -43,6 +43,10 @@ const messages = defineMessages({
43 id: 'settings.app.form.minimizeToSystemTray', 43 id: 'settings.app.form.minimizeToSystemTray',
44 defaultMessage: '!!!Minimize Ferdi to system tray', 44 defaultMessage: '!!!Minimize Ferdi to system tray',
45 }, 45 },
46 privateNotifications: {
47 id: 'settings.app.form.privateNotifications',
48 defaultMessage: '!!!Don\'t show message content in notifications',
49 },
46 server: { 50 server: {
47 id: 'settings.app.form.server', 51 id: 'settings.app.form.server',
48 defaultMessage: '!!!Server', 52 defaultMessage: '!!!Server',
@@ -110,6 +114,7 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e
110 runInBackground: settingsData.runInBackground, 114 runInBackground: settingsData.runInBackground,
111 enableSystemTray: settingsData.enableSystemTray, 115 enableSystemTray: settingsData.enableSystemTray,
112 minimizeToSystemTray: settingsData.minimizeToSystemTray, 116 minimizeToSystemTray: settingsData.minimizeToSystemTray,
117 privateNotifications: settingsData.privateNotifications,
113 server: settingsData.server, 118 server: settingsData.server,
114 todoServer: settingsData.todoServer, 119 todoServer: settingsData.todoServer,
115 enableGPUAcceleration: settingsData.enableGPUAcceleration, 120 enableGPUAcceleration: settingsData.enableGPUAcceleration,
@@ -177,6 +182,11 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e
177 value: settings.all.app.minimizeToSystemTray, 182 value: settings.all.app.minimizeToSystemTray,
178 default: DEFAULT_APP_SETTINGS.minimizeToSystemTray, 183 default: DEFAULT_APP_SETTINGS.minimizeToSystemTray,
179 }, 184 },
185 privateNotifications: {
186 label: intl.formatMessage(messages.privateNotifications),
187 value: settings.all.app.privateNotifications,
188 default: DEFAULT_APP_SETTINGS.privateNotifications,
189 },
180 server: { 190 server: {
181 label: intl.formatMessage(messages.server), 191 label: intl.formatMessage(messages.server),
182 value: settings.all.app.server || API, 192 value: settings.all.app.server || API,
diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json
index ba7c2c3b5..ea5abf38f 100644
--- a/src/i18n/locales/defaultMessages.json
+++ b/src/i18n/locales/defaultMessages.json
@@ -3567,133 +3567,146 @@
3567 } 3567 }
3568 }, 3568 },
3569 { 3569 {
3570 "defaultMessage": "!!!Server", 3570 "defaultMessage": "!!!Don't show message content in notifications",
3571 "end": { 3571 "end": {
3572 "column": 3, 3572 "column": 3,
3573 "line": 49 3573 "line": 49
3574 }, 3574 },
3575 "file": "src/containers/settings/EditSettingsScreen.js", 3575 "file": "src/containers/settings/EditSettingsScreen.js",
3576 "id": "settings.app.form.privateNotifications",
3577 "start": {
3578 "column": 24,
3579 "line": 46
3580 }
3581 },
3582 {
3583 "defaultMessage": "!!!Server",
3584 "end": {
3585 "column": 3,
3586 "line": 53
3587 },
3588 "file": "src/containers/settings/EditSettingsScreen.js",
3576 "id": "settings.app.form.server", 3589 "id": "settings.app.form.server",
3577 "start": { 3590 "start": {
3578 "column": 10, 3591 "column": 10,
3579 "line": 46 3592 "line": 50
3580 } 3593 }
3581 }, 3594 },
3582 { 3595 {
3583 "defaultMessage": "!!!Todo Server", 3596 "defaultMessage": "!!!Todo Server",
3584 "end": { 3597 "end": {
3585 "column": 3, 3598 "column": 3,
3586 "line": 53 3599 "line": 57
3587 }, 3600 },
3588 "file": "src/containers/settings/EditSettingsScreen.js", 3601 "file": "src/containers/settings/EditSettingsScreen.js",
3589 "id": "settings.app.form.todoServer", 3602 "id": "settings.app.form.todoServer",
3590 "start": { 3603 "start": {
3591 "column": 14, 3604 "column": 14,
3592 "line": 50 3605 "line": 54
3593 } 3606 }
3594 }, 3607 },
3595 { 3608 {
3596 "defaultMessage": "!!!Language", 3609 "defaultMessage": "!!!Language",
3597 "end": { 3610 "end": {
3598 "column": 3, 3611 "column": 3,
3599 "line": 57 3612 "line": 61
3600 }, 3613 },
3601 "file": "src/containers/settings/EditSettingsScreen.js", 3614 "file": "src/containers/settings/EditSettingsScreen.js",
3602 "id": "settings.app.form.language", 3615 "id": "settings.app.form.language",
3603 "start": { 3616 "start": {
3604 "column": 12, 3617 "column": 12,
3605 "line": 54 3618 "line": 58
3606 } 3619 }
3607 }, 3620 },
3608 { 3621 {
3609 "defaultMessage": "!!!Dark Mode", 3622 "defaultMessage": "!!!Dark Mode",
3610 "end": { 3623 "end": {
3611 "column": 3, 3624 "column": 3,
3612 "line": 61 3625 "line": 65
3613 }, 3626 },
3614 "file": "src/containers/settings/EditSettingsScreen.js", 3627 "file": "src/containers/settings/EditSettingsScreen.js",
3615 "id": "settings.app.form.darkMode", 3628 "id": "settings.app.form.darkMode",
3616 "start": { 3629 "start": {
3617 "column": 12, 3630 "column": 12,
3618 "line": 58 3631 "line": 62
3619 } 3632 }
3620 }, 3633 },
3621 { 3634 {
3622 "defaultMessage": "!!!Display disabled services tabs", 3635 "defaultMessage": "!!!Display disabled services tabs",
3623 "end": { 3636 "end": {
3624 "column": 3, 3637 "column": 3,
3625 "line": 65 3638 "line": 69
3626 }, 3639 },
3627 "file": "src/containers/settings/EditSettingsScreen.js", 3640 "file": "src/containers/settings/EditSettingsScreen.js",
3628 "id": "settings.app.form.showDisabledServices", 3641 "id": "settings.app.form.showDisabledServices",
3629 "start": { 3642 "start": {
3630 "column": 24, 3643 "column": 24,
3631 "line": 62 3644 "line": 66
3632 } 3645 }
3633 }, 3646 },
3634 { 3647 {
3635 "defaultMessage": "!!!Show unread message badge when notifications are disabled", 3648 "defaultMessage": "!!!Show unread message badge when notifications are disabled",
3636 "end": { 3649 "end": {
3637 "column": 3, 3650 "column": 3,
3638 "line": 69 3651 "line": 73
3639 }, 3652 },
3640 "file": "src/containers/settings/EditSettingsScreen.js", 3653 "file": "src/containers/settings/EditSettingsScreen.js",
3641 "id": "settings.app.form.showMessagesBadgesWhenMuted", 3654 "id": "settings.app.form.showMessagesBadgesWhenMuted",
3642 "start": { 3655 "start": {
3643 "column": 29, 3656 "column": 29,
3644 "line": 66 3657 "line": 70
3645 } 3658 }
3646 }, 3659 },
3647 { 3660 {
3648 "defaultMessage": "!!!Enable spell checking", 3661 "defaultMessage": "!!!Enable spell checking",
3649 "end": { 3662 "end": {
3650 "column": 3, 3663 "column": 3,
3651 "line": 73 3664 "line": 77
3652 }, 3665 },
3653 "file": "src/containers/settings/EditSettingsScreen.js", 3666 "file": "src/containers/settings/EditSettingsScreen.js",
3654 "id": "settings.app.form.enableSpellchecking", 3667 "id": "settings.app.form.enableSpellchecking",
3655 "start": { 3668 "start": {
3656 "column": 23, 3669 "column": 23,
3657 "line": 70 3670 "line": 74
3658 } 3671 }
3659 }, 3672 },
3660 { 3673 {
3661 "defaultMessage": "!!!Enable GPU Acceleration", 3674 "defaultMessage": "!!!Enable GPU Acceleration",
3662 "end": { 3675 "end": {
3663 "column": 3, 3676 "column": 3,
3664 "line": 77 3677 "line": 81
3665 }, 3678 },
3666 "file": "src/containers/settings/EditSettingsScreen.js", 3679 "file": "src/containers/settings/EditSettingsScreen.js",
3667 "id": "settings.app.form.enableGPUAcceleration", 3680 "id": "settings.app.form.enableGPUAcceleration",
3668 "start": { 3681 "start": {
3669 "column": 25, 3682 "column": 25,
3670 "line": 74 3683 "line": 78
3671 } 3684 }
3672 }, 3685 },
3673 { 3686 {
3674 "defaultMessage": "!!!Include beta versions", 3687 "defaultMessage": "!!!Include beta versions",
3675 "end": { 3688 "end": {
3676 "column": 3, 3689 "column": 3,
3677 "line": 81 3690 "line": 85
3678 }, 3691 },
3679 "file": "src/containers/settings/EditSettingsScreen.js", 3692 "file": "src/containers/settings/EditSettingsScreen.js",
3680 "id": "settings.app.form.beta", 3693 "id": "settings.app.form.beta",
3681 "start": { 3694 "start": {
3682 "column": 8, 3695 "column": 8,
3683 "line": 78 3696 "line": 82
3684 } 3697 }
3685 }, 3698 },
3686 { 3699 {
3687 "defaultMessage": "!!!Enable Franz Todos", 3700 "defaultMessage": "!!!Enable Franz Todos",
3688 "end": { 3701 "end": {
3689 "column": 3, 3702 "column": 3,
3690 "line": 85 3703 "line": 89
3691 }, 3704 },
3692 "file": "src/containers/settings/EditSettingsScreen.js", 3705 "file": "src/containers/settings/EditSettingsScreen.js",
3693 "id": "settings.app.form.enableTodos", 3706 "id": "settings.app.form.enableTodos",
3694 "start": { 3707 "start": {
3695 "column": 15, 3708 "column": 15,
3696 "line": 82 3709 "line": 86
3697 } 3710 }
3698 } 3711 }
3699 ], 3712 ],
diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json
index 67f80bf18..e6810509a 100644
--- a/src/i18n/locales/en-US.json
+++ b/src/i18n/locales/en-US.json
@@ -21,7 +21,7 @@
21 "feature.todos.premium.rollout": "Everyone else will have to wait a little longer.", 21 "feature.todos.premium.rollout": "Everyone else will have to wait a little longer.",
22 "feature.todos.premium.upgrade": "Upgrade Account", 22 "feature.todos.premium.upgrade": "Upgrade Account",
23 "global.api.unhealthy": "Can't connect to Ferdi online services", 23 "global.api.unhealthy": "Can't connect to Ferdi online services",
24 "global.FranzProRequired": "Ferdi Professional Required", 24 "global.franzProRequired": "!!!Franz Professional Required",
25 "global.notConnectedToTheInternet": "You are not connected to the internet.", 25 "global.notConnectedToTheInternet": "You are not connected to the internet.",
26 "global.spellchecker.useDefault": "Use System Default ({default})", 26 "global.spellchecker.useDefault": "Use System Default ({default})",
27 "global.spellchecking.autodetect": "Detect language automatically", 27 "global.spellchecking.autodetect": "Detect language automatically",
@@ -214,6 +214,7 @@
214 "settings.app.form.enableTodos": "Enable Ferdi Todos", 214 "settings.app.form.enableTodos": "Enable Ferdi Todos",
215 "settings.app.form.language": "Language", 215 "settings.app.form.language": "Language",
216 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", 216 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray",
217 "settings.app.form.privateNotifications": "Don't show message content in notifications",
217 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 218 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
218 "settings.app.form.server": "Server", 219 "settings.app.form.server": "Server",
219 "settings.app.form.showDisabledServices": "Display disabled services tabs", 220 "settings.app.form.showDisabledServices": "Display disabled services tabs",
diff --git a/src/i18n/messages/src/containers/settings/EditSettingsScreen.json b/src/i18n/messages/src/containers/settings/EditSettingsScreen.json
index 70ec74ada..d50389066 100644
--- a/src/i18n/messages/src/containers/settings/EditSettingsScreen.json
+++ b/src/i18n/messages/src/containers/settings/EditSettingsScreen.json
@@ -65,15 +65,28 @@
65 } 65 }
66 }, 66 },
67 { 67 {
68 "id": "settings.app.form.privateNotifications",
69 "defaultMessage": "!!!Don't show message content in notifications",
70 "file": "src/containers/settings/EditSettingsScreen.js",
71 "start": {
72 "line": 46,
73 "column": 24
74 },
75 "end": {
76 "line": 49,
77 "column": 3
78 }
79 },
80 {
68 "id": "settings.app.form.server", 81 "id": "settings.app.form.server",
69 "defaultMessage": "!!!Server", 82 "defaultMessage": "!!!Server",
70 "file": "src/containers/settings/EditSettingsScreen.js", 83 "file": "src/containers/settings/EditSettingsScreen.js",
71 "start": { 84 "start": {
72 "line": 46, 85 "line": 50,
73 "column": 10 86 "column": 10
74 }, 87 },
75 "end": { 88 "end": {
76 "line": 49, 89 "line": 53,
77 "column": 3 90 "column": 3
78 } 91 }
79 }, 92 },
@@ -82,11 +95,11 @@
82 "defaultMessage": "!!!Todo Server", 95 "defaultMessage": "!!!Todo Server",
83 "file": "src/containers/settings/EditSettingsScreen.js", 96 "file": "src/containers/settings/EditSettingsScreen.js",
84 "start": { 97 "start": {
85 "line": 50, 98 "line": 54,
86 "column": 14 99 "column": 14
87 }, 100 },
88 "end": { 101 "end": {
89 "line": 53, 102 "line": 57,
90 "column": 3 103 "column": 3
91 } 104 }
92 }, 105 },
@@ -95,11 +108,11 @@
95 "defaultMessage": "!!!Language", 108 "defaultMessage": "!!!Language",
96 "file": "src/containers/settings/EditSettingsScreen.js", 109 "file": "src/containers/settings/EditSettingsScreen.js",
97 "start": { 110 "start": {
98 "line": 54, 111 "line": 58,
99 "column": 12 112 "column": 12
100 }, 113 },
101 "end": { 114 "end": {
102 "line": 57, 115 "line": 61,
103 "column": 3 116 "column": 3
104 } 117 }
105 }, 118 },
@@ -108,11 +121,11 @@
108 "defaultMessage": "!!!Dark Mode", 121 "defaultMessage": "!!!Dark Mode",
109 "file": "src/containers/settings/EditSettingsScreen.js", 122 "file": "src/containers/settings/EditSettingsScreen.js",
110 "start": { 123 "start": {
111 "line": 58, 124 "line": 62,
112 "column": 12 125 "column": 12
113 }, 126 },
114 "end": { 127 "end": {
115 "line": 61, 128 "line": 65,
116 "column": 3 129 "column": 3
117 } 130 }
118 }, 131 },
@@ -121,11 +134,11 @@
121 "defaultMessage": "!!!Display disabled services tabs", 134 "defaultMessage": "!!!Display disabled services tabs",
122 "file": "src/containers/settings/EditSettingsScreen.js", 135 "file": "src/containers/settings/EditSettingsScreen.js",
123 "start": { 136 "start": {
124 "line": 62, 137 "line": 66,
125 "column": 24 138 "column": 24
126 }, 139 },
127 "end": { 140 "end": {
128 "line": 65, 141 "line": 69,
129 "column": 3 142 "column": 3
130 } 143 }
131 }, 144 },
@@ -134,11 +147,11 @@
134 "defaultMessage": "!!!Show unread message badge when notifications are disabled", 147 "defaultMessage": "!!!Show unread message badge when notifications are disabled",
135 "file": "src/containers/settings/EditSettingsScreen.js", 148 "file": "src/containers/settings/EditSettingsScreen.js",
136 "start": { 149 "start": {
137 "line": 66, 150 "line": 70,
138 "column": 29 151 "column": 29
139 }, 152 },
140 "end": { 153 "end": {
141 "line": 69, 154 "line": 73,
142 "column": 3 155 "column": 3
143 } 156 }
144 }, 157 },
@@ -147,11 +160,11 @@
147 "defaultMessage": "!!!Enable spell checking", 160 "defaultMessage": "!!!Enable spell checking",
148 "file": "src/containers/settings/EditSettingsScreen.js", 161 "file": "src/containers/settings/EditSettingsScreen.js",
149 "start": { 162 "start": {
150 "line": 70, 163 "line": 74,
151 "column": 23 164 "column": 23
152 }, 165 },
153 "end": { 166 "end": {
154 "line": 73, 167 "line": 77,
155 "column": 3 168 "column": 3
156 } 169 }
157 }, 170 },
@@ -160,11 +173,11 @@
160 "defaultMessage": "!!!Enable GPU Acceleration", 173 "defaultMessage": "!!!Enable GPU Acceleration",
161 "file": "src/containers/settings/EditSettingsScreen.js", 174 "file": "src/containers/settings/EditSettingsScreen.js",
162 "start": { 175 "start": {
163 "line": 74, 176 "line": 78,
164 "column": 25 177 "column": 25
165 }, 178 },
166 "end": { 179 "end": {
167 "line": 77, 180 "line": 81,
168 "column": 3 181 "column": 3
169 } 182 }
170 }, 183 },
@@ -173,11 +186,11 @@
173 "defaultMessage": "!!!Include beta versions", 186 "defaultMessage": "!!!Include beta versions",
174 "file": "src/containers/settings/EditSettingsScreen.js", 187 "file": "src/containers/settings/EditSettingsScreen.js",
175 "start": { 188 "start": {
176 "line": 78, 189 "line": 82,
177 "column": 8 190 "column": 8
178 }, 191 },
179 "end": { 192 "end": {
180 "line": 81, 193 "line": 85,
181 "column": 3 194 "column": 3
182 } 195 }
183 }, 196 },
@@ -186,11 +199,11 @@
186 "defaultMessage": "!!!Enable Franz Todos", 199 "defaultMessage": "!!!Enable Franz Todos",
187 "file": "src/containers/settings/EditSettingsScreen.js", 200 "file": "src/containers/settings/EditSettingsScreen.js",
188 "start": { 201 "start": {
189 "line": 82, 202 "line": 86,
190 "column": 15 203 "column": 15
191 }, 204 },
192 "end": { 205 "end": {
193 "line": 85, 206 "line": 89,
194 "column": 3 207 "column": 3
195 } 208 }
196 } 209 }
diff --git a/src/stores/ServicesStore.js b/src/stores/ServicesStore.js
index 876851a66..1debf69f6 100644
--- a/src/stores/ServicesStore.js
+++ b/src/stores/ServicesStore.js
@@ -399,8 +399,17 @@ export default class ServicesStore extends Store {
399 } 399 }
400 400
401 if (service.isNotificationEnabled) { 401 if (service.isNotificationEnabled) {
402 const title = typeof args[0].title === 'string' ? args[0].title : service.name; 402 let title = `Notification from ${service.name}`;
403 options.body = typeof options.body === 'string' ? options.body : ''; 403 if (!this.stores.settings.all.app.privateNotifications) {
404 options.body = typeof options.body === 'string' ? options.body : '';
405 title = typeof args[0].title === 'string' ? args[0].title : service.name;
406 } else {
407 // Remove message data from notification in private mode
408 options.body = '';
409 options.icon = '/assets/img/notification-badge.gif';
410 }
411
412 console.log(title, options);
404 413
405 this.actions.app.notify({ 414 this.actions.app.notify({
406 notificationId: args[0].notificationId, 415 notificationId: args[0].notificationId,