diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/components/subscription/SubscriptionForm.js | 7 | ||||
-rw-r--r-- | src/features/announcements/index.js | 2 | ||||
-rw-r--r-- | src/features/announcements/store.js | 6 | ||||
-rw-r--r-- | src/i18n/locales/defaultMessages.json | 25 | ||||
-rw-r--r-- | src/i18n/locales/en-US.json | 1 | ||||
-rw-r--r-- | src/i18n/messages/src/components/subscription/SubscriptionForm.json | 25 |
6 files changed, 53 insertions, 13 deletions
diff --git a/src/components/subscription/SubscriptionForm.js b/src/components/subscription/SubscriptionForm.js index 7a818d100..50f1e0522 100644 --- a/src/components/subscription/SubscriptionForm.js +++ b/src/components/subscription/SubscriptionForm.js | |||
@@ -51,6 +51,10 @@ const messages = defineMessages({ | |||
51 | id: 'subscription.features.spellchecker', | 51 | id: 'subscription.features.spellchecker', |
52 | defaultMessage: '!!!Support for Spellchecker', | 52 | defaultMessage: '!!!Support for Spellchecker', |
53 | }, | 53 | }, |
54 | workspaces: { | ||
55 | id: 'subscription.features.workspaces', | ||
56 | defaultMessage: '!!!Organize your services in workspaces', | ||
57 | }, | ||
54 | ads: { | 58 | ads: { |
55 | id: 'subscription.features.ads', | 59 | id: 'subscription.features.ads', |
56 | defaultMessage: '!!!No ads, ever!', | 60 | defaultMessage: '!!!No ads, ever!', |
@@ -171,6 +175,9 @@ export default @observer class SubscriptionForm extends Component { | |||
171 | {intl.formatMessage(messages.proxy)} | 175 | {intl.formatMessage(messages.proxy)} |
172 | </li> | 176 | </li> |
173 | <li> | 177 | <li> |
178 | {intl.formatMessage(messages.workspaces)} | ||
179 | </li> | ||
180 | <li> | ||
174 | {intl.formatMessage(messages.ads)} | 181 | {intl.formatMessage(messages.ads)} |
175 | </li> | 182 | </li> |
176 | </ul> | 183 | </ul> |
diff --git a/src/features/announcements/index.js b/src/features/announcements/index.js index c087689a7..4658b976f 100644 --- a/src/features/announcements/index.js +++ b/src/features/announcements/index.js | |||
@@ -3,6 +3,8 @@ import { AnnouncementsStore } from './store'; | |||
3 | 3 | ||
4 | const debug = require('debug')('Franz:feature:announcements'); | 4 | const debug = require('debug')('Franz:feature:announcements'); |
5 | 5 | ||
6 | export const GA_CATEGORY_ANNOUNCEMENTS = 'Announcements'; | ||
7 | |||
6 | export const announcementsStore = new AnnouncementsStore(); | 8 | export const announcementsStore = new AnnouncementsStore(); |
7 | 9 | ||
8 | export default function initAnnouncements(stores, actions) { | 10 | export default function initAnnouncements(stores, actions) { |
diff --git a/src/features/announcements/store.js b/src/features/announcements/store.js index 87cf08544..aa98d3bd1 100644 --- a/src/features/announcements/store.js +++ b/src/features/announcements/store.js | |||
@@ -8,10 +8,12 @@ import semver from 'semver'; | |||
8 | import localStorage from 'mobx-localstorage'; | 8 | import localStorage from 'mobx-localstorage'; |
9 | 9 | ||
10 | import { FeatureStore } from '../utils/FeatureStore'; | 10 | import { FeatureStore } from '../utils/FeatureStore'; |
11 | import { GA_CATEGORY_ANNOUNCEMENTS } from '.'; | ||
11 | import { getAnnouncementRequest, getChangelogRequest, getCurrentVersionRequest } from './api'; | 12 | import { getAnnouncementRequest, getChangelogRequest, getCurrentVersionRequest } from './api'; |
12 | import { announcementActions } from './actions'; | 13 | import { announcementActions } from './actions'; |
13 | import { createActionBindings } from '../utils/ActionBinding'; | 14 | import { createActionBindings } from '../utils/ActionBinding'; |
14 | import { createReactions } from '../../stores/lib/Reaction'; | 15 | import { createReactions } from '../../stores/lib/Reaction'; |
16 | import { gaEvent } from '../../lib/analytics'; | ||
15 | 17 | ||
16 | const LOCAL_STORAGE_KEY = 'announcements'; | 18 | const LOCAL_STORAGE_KEY = 'announcements'; |
17 | 19 | ||
@@ -98,6 +100,8 @@ export class AnnouncementsStore extends FeatureStore { | |||
98 | dispose(); | 100 | dispose(); |
99 | }, | 101 | }, |
100 | ); | 102 | ); |
103 | |||
104 | gaEvent(GA_CATEGORY_ANNOUNCEMENTS, 'show'); | ||
101 | }; | 105 | }; |
102 | 106 | ||
103 | @action _hideAnnouncement() { | 107 | @action _hideAnnouncement() { |
@@ -113,7 +117,7 @@ export class AnnouncementsStore extends FeatureStore { | |||
113 | 117 | ||
114 | // Check if the user has already used current version (= has seen the announcement) | 118 | // Check if the user has already used current version (= has seen the announcement) |
115 | const { currentVersion, lastSeenAnnouncementVersion } = this; | 119 | const { currentVersion, lastSeenAnnouncementVersion } = this; |
116 | if (semver.gt(currentVersion, lastSeenAnnouncementVersion)) { | 120 | if (semver.gt(currentVersion, lastSeenAnnouncementVersion || '0.0.0')) { |
117 | debug(`${currentVersion} < ${lastSeenAnnouncementVersion}: announcement is shown`); | 121 | debug(`${currentVersion} < ${lastSeenAnnouncementVersion}: announcement is shown`); |
118 | this._showAnnouncement(); | 122 | this._showAnnouncement(); |
119 | } | 123 | } |
diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json index f0a687b0f..9c9dee340 100644 --- a/src/i18n/locales/defaultMessages.json +++ b/src/i18n/locales/defaultMessages.json | |||
@@ -2566,42 +2566,55 @@ | |||
2566 | } | 2566 | } |
2567 | }, | 2567 | }, |
2568 | { | 2568 | { |
2569 | "defaultMessage": "!!!No ads, ever!", | 2569 | "defaultMessage": "!!!Organize your services in workspaces", |
2570 | "end": { | 2570 | "end": { |
2571 | "column": 3, | 2571 | "column": 3, |
2572 | "line": 57 | 2572 | "line": 57 |
2573 | }, | 2573 | }, |
2574 | "file": "src/components/subscription/SubscriptionForm.js", | 2574 | "file": "src/components/subscription/SubscriptionForm.js", |
2575 | "id": "subscription.features.workspaces", | ||
2576 | "start": { | ||
2577 | "column": 14, | ||
2578 | "line": 54 | ||
2579 | } | ||
2580 | }, | ||
2581 | { | ||
2582 | "defaultMessage": "!!!No ads, ever!", | ||
2583 | "end": { | ||
2584 | "column": 3, | ||
2585 | "line": 61 | ||
2586 | }, | ||
2587 | "file": "src/components/subscription/SubscriptionForm.js", | ||
2575 | "id": "subscription.features.ads", | 2588 | "id": "subscription.features.ads", |
2576 | "start": { | 2589 | "start": { |
2577 | "column": 7, | 2590 | "column": 7, |
2578 | "line": 54 | 2591 | "line": 58 |
2579 | } | 2592 | } |
2580 | }, | 2593 | }, |
2581 | { | 2594 | { |
2582 | "defaultMessage": "!!!coming soon", | 2595 | "defaultMessage": "!!!coming soon", |
2583 | "end": { | 2596 | "end": { |
2584 | "column": 3, | 2597 | "column": 3, |
2585 | "line": 61 | 2598 | "line": 65 |
2586 | }, | 2599 | }, |
2587 | "file": "src/components/subscription/SubscriptionForm.js", | 2600 | "file": "src/components/subscription/SubscriptionForm.js", |
2588 | "id": "subscription.features.comingSoon", | 2601 | "id": "subscription.features.comingSoon", |
2589 | "start": { | 2602 | "start": { |
2590 | "column": 14, | 2603 | "column": 14, |
2591 | "line": 58 | 2604 | "line": 62 |
2592 | } | 2605 | } |
2593 | }, | 2606 | }, |
2594 | { | 2607 | { |
2595 | "defaultMessage": "!!!EU residents: local sales tax may apply", | 2608 | "defaultMessage": "!!!EU residents: local sales tax may apply", |
2596 | "end": { | 2609 | "end": { |
2597 | "column": 3, | 2610 | "column": 3, |
2598 | "line": 65 | 2611 | "line": 69 |
2599 | }, | 2612 | }, |
2600 | "file": "src/components/subscription/SubscriptionForm.js", | 2613 | "file": "src/components/subscription/SubscriptionForm.js", |
2601 | "id": "subscription.euTaxInfo", | 2614 | "id": "subscription.euTaxInfo", |
2602 | "start": { | 2615 | "start": { |
2603 | "column": 13, | 2616 | "column": 13, |
2604 | "line": 62 | 2617 | "line": 66 |
2605 | } | 2618 | } |
2606 | } | 2619 | } |
2607 | ], | 2620 | ], |
diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index e2eb32450..1d8fb8d18 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json | |||
@@ -292,6 +292,7 @@ | |||
292 | "subscription.features.onpremise.mattermost": "Add on-premise/hosted services like Mattermost", | 292 | "subscription.features.onpremise.mattermost": "Add on-premise/hosted services like Mattermost", |
293 | "subscription.features.proxy": "Proxy support for services", | 293 | "subscription.features.proxy": "Proxy support for services", |
294 | "subscription.features.spellchecker": "Support for spellchecker", | 294 | "subscription.features.spellchecker": "Support for spellchecker", |
295 | "subscription.features.workspaces": "Organize your services in workspaces", | ||
295 | "subscription.includedFeatures": "Paid Franz Premium Supporter Account includes", | 296 | "subscription.includedFeatures": "Paid Franz Premium Supporter Account includes", |
296 | "subscription.paymentSessionError": "Could not initialize payment form", | 297 | "subscription.paymentSessionError": "Could not initialize payment form", |
297 | "subscription.submit.label": "I want to support the development of Franz", | 298 | "subscription.submit.label": "I want to support the development of Franz", |
diff --git a/src/i18n/messages/src/components/subscription/SubscriptionForm.json b/src/i18n/messages/src/components/subscription/SubscriptionForm.json index cc7470358..f98eb986f 100644 --- a/src/i18n/messages/src/components/subscription/SubscriptionForm.json +++ b/src/i18n/messages/src/components/subscription/SubscriptionForm.json | |||
@@ -130,15 +130,28 @@ | |||
130 | } | 130 | } |
131 | }, | 131 | }, |
132 | { | 132 | { |
133 | "id": "subscription.features.workspaces", | ||
134 | "defaultMessage": "!!!Organize your services in workspaces", | ||
135 | "file": "src/components/subscription/SubscriptionForm.js", | ||
136 | "start": { | ||
137 | "line": 54, | ||
138 | "column": 14 | ||
139 | }, | ||
140 | "end": { | ||
141 | "line": 57, | ||
142 | "column": 3 | ||
143 | } | ||
144 | }, | ||
145 | { | ||
133 | "id": "subscription.features.ads", | 146 | "id": "subscription.features.ads", |
134 | "defaultMessage": "!!!No ads, ever!", | 147 | "defaultMessage": "!!!No ads, ever!", |
135 | "file": "src/components/subscription/SubscriptionForm.js", | 148 | "file": "src/components/subscription/SubscriptionForm.js", |
136 | "start": { | 149 | "start": { |
137 | "line": 54, | 150 | "line": 58, |
138 | "column": 7 | 151 | "column": 7 |
139 | }, | 152 | }, |
140 | "end": { | 153 | "end": { |
141 | "line": 57, | 154 | "line": 61, |
142 | "column": 3 | 155 | "column": 3 |
143 | } | 156 | } |
144 | }, | 157 | }, |
@@ -147,11 +160,11 @@ | |||
147 | "defaultMessage": "!!!coming soon", | 160 | "defaultMessage": "!!!coming soon", |
148 | "file": "src/components/subscription/SubscriptionForm.js", | 161 | "file": "src/components/subscription/SubscriptionForm.js", |
149 | "start": { | 162 | "start": { |
150 | "line": 58, | 163 | "line": 62, |
151 | "column": 14 | 164 | "column": 14 |
152 | }, | 165 | }, |
153 | "end": { | 166 | "end": { |
154 | "line": 61, | 167 | "line": 65, |
155 | "column": 3 | 168 | "column": 3 |
156 | } | 169 | } |
157 | }, | 170 | }, |
@@ -160,11 +173,11 @@ | |||
160 | "defaultMessage": "!!!EU residents: local sales tax may apply", | 173 | "defaultMessage": "!!!EU residents: local sales tax may apply", |
161 | "file": "src/components/subscription/SubscriptionForm.js", | 174 | "file": "src/components/subscription/SubscriptionForm.js", |
162 | "start": { | 175 | "start": { |
163 | "line": 62, | 176 | "line": 66, |
164 | "column": 13 | 177 | "column": 13 |
165 | }, | 178 | }, |
166 | "end": { | 179 | "end": { |
167 | "line": 65, | 180 | "line": 69, |
168 | "column": 3 | 181 | "column": 3 |
169 | } | 182 | } |
170 | } | 183 | } |