diff options
author | Travis CI <travis@Traviss-Mac.local> | 2020-10-05 16:13:56 +0000 |
---|---|---|
committer | Travis CI <travis@Traviss-Mac.local> | 2020-10-05 16:13:56 +0000 |
commit | 0ed17b8494b0a67938e5605f723d1ec1bb55738f (patch) | |
tree | 51af89af37bca3e60c53f0eccad9c0ff82ca08bf /src | |
parent | Echo 'Building...' before hanging build command for visibility [skip ci] (diff) | |
parent | Improved onboarding flow and settings empty states (#996) (diff) | |
download | ferdium-app-0ed17b8494b0a67938e5605f723d1ec1bb55738f.tar.gz ferdium-app-0ed17b8494b0a67938e5605f723d1ec1bb55738f.tar.zst ferdium-app-0ed17b8494b0a67938e5605f723d1ec1bb55738f.zip |
Merge remote-tracking branch 'source/develop' into HEAD
Diffstat (limited to 'src')
29 files changed, 640 insertions, 220 deletions
diff --git a/src/components/layout/AppLayout.js b/src/components/layout/AppLayout.js index 3b732e602..a60270a6f 100644 --- a/src/components/layout/AppLayout.js +++ b/src/components/layout/AppLayout.js | |||
@@ -9,6 +9,7 @@ import InfoBar from '../ui/InfoBar'; | |||
9 | import { Component as BasicAuth } from '../../features/basicAuth'; | 9 | import { Component as BasicAuth } from '../../features/basicAuth'; |
10 | import { Component as ShareFranz } from '../../features/shareFranz'; | 10 | import { Component as ShareFranz } from '../../features/shareFranz'; |
11 | import { Component as QuickSwitch } from '../../features/quickSwitch'; | 11 | import { Component as QuickSwitch } from '../../features/quickSwitch'; |
12 | import { Component as NightlyBuilds } from '../../features/nightlyBuilds'; | ||
12 | import { Component as PublishDebugInfo } from '../../features/publishDebugInfo'; | 13 | import { Component as PublishDebugInfo } from '../../features/publishDebugInfo'; |
13 | import ErrorBoundary from '../util/ErrorBoundary'; | 14 | import ErrorBoundary from '../util/ErrorBoundary'; |
14 | 15 | ||
@@ -197,6 +198,7 @@ class AppLayout extends Component { | |||
197 | <BasicAuth /> | 198 | <BasicAuth /> |
198 | <ShareFranz /> | 199 | <ShareFranz /> |
199 | <QuickSwitch /> | 200 | <QuickSwitch /> |
201 | <NightlyBuilds /> | ||
200 | <PublishDebugInfo /> | 202 | <PublishDebugInfo /> |
201 | {services} | 203 | {services} |
202 | {children} | 204 | {children} |
diff --git a/src/components/services/content/Services.js b/src/components/services/content/Services.js index 80f17d8f2..da2ee0b9e 100644 --- a/src/components/services/content/Services.js +++ b/src/components/services/content/Services.js | |||
@@ -149,7 +149,7 @@ export default @injectSheet(styles) @inject('actions') @observer class Services | |||
149 | timeout={300} | 149 | timeout={300} |
150 | transitionName="slideUp" | 150 | transitionName="slideUp" |
151 | > | 151 | > |
152 | <Link to={isLoggedIn ? '/settings/services' : '/auth/welcome'} className="button"> | 152 | <Link to={isLoggedIn ? '/settings/recipes' : '/auth/welcome'} className="button"> |
153 | { isLoggedIn ? intl.formatMessage(messages.getStarted) : 'Login' } | 153 | { isLoggedIn ? intl.formatMessage(messages.getStarted) : 'Login' } |
154 | </Link> | 154 | </Link> |
155 | {!isLoggedIn && ( | 155 | {!isLoggedIn && ( |
diff --git a/src/components/settings/recipes/RecipesDashboard.js b/src/components/settings/recipes/RecipesDashboard.js index d08e6cbc2..90e89ffa9 100644 --- a/src/components/settings/recipes/RecipesDashboard.js +++ b/src/components/settings/recipes/RecipesDashboard.js | |||
@@ -15,6 +15,7 @@ import Appear from '../../ui/effects/Appear'; | |||
15 | import { FRANZ_SERVICE_REQUEST } from '../../../config'; | 15 | import { FRANZ_SERVICE_REQUEST } from '../../../config'; |
16 | import LimitReachedInfobox from '../../../features/serviceLimit/components/LimitReachedInfobox'; | 16 | import LimitReachedInfobox from '../../../features/serviceLimit/components/LimitReachedInfobox'; |
17 | import PremiumFeatureContainer from '../../ui/PremiumFeatureContainer'; | 17 | import PremiumFeatureContainer from '../../ui/PremiumFeatureContainer'; |
18 | import RecipePreview from '../../../models/RecipePreview'; | ||
18 | 19 | ||
19 | const messages = defineMessages({ | 20 | const messages = defineMessages({ |
20 | headline: { | 21 | headline: { |
@@ -39,7 +40,7 @@ const messages = defineMessages({ | |||
39 | }, | 40 | }, |
40 | nothingFound: { | 41 | nothingFound: { |
41 | id: 'settings.recipes.nothingFound', | 42 | id: 'settings.recipes.nothingFound', |
42 | defaultMessage: '!!!Sorry, but no service matched your search term.', | 43 | defaultMessage: '!!!Sorry, but no service matched your search term - but you can still probably add it using the "Custom Website" option:', |
43 | }, | 44 | }, |
44 | servicesSuccessfulAddedInfo: { | 45 | servicesSuccessfulAddedInfo: { |
45 | id: 'settings.recipes.servicesSuccessfulAddedInfo', | 46 | id: 'settings.recipes.servicesSuccessfulAddedInfo', |
@@ -106,6 +107,7 @@ const styles = { | |||
106 | export default @injectSheet(styles) @observer class RecipesDashboard extends Component { | 107 | export default @injectSheet(styles) @observer class RecipesDashboard extends Component { |
107 | static propTypes = { | 108 | static propTypes = { |
108 | recipes: MobxPropTypes.arrayOrObservableArray.isRequired, | 109 | recipes: MobxPropTypes.arrayOrObservableArray.isRequired, |
110 | customWebsiteRecipe: PropTypes.instanceOf(RecipePreview).isRequired, | ||
109 | isLoading: PropTypes.bool.isRequired, | 111 | isLoading: PropTypes.bool.isRequired, |
110 | hasLoadedRecipes: PropTypes.bool.isRequired, | 112 | hasLoadedRecipes: PropTypes.bool.isRequired, |
111 | showAddServiceInterface: PropTypes.func.isRequired, | 113 | showAddServiceInterface: PropTypes.func.isRequired, |
@@ -133,6 +135,7 @@ export default @injectSheet(styles) @observer class RecipesDashboard extends Com | |||
133 | render() { | 135 | render() { |
134 | const { | 136 | const { |
135 | recipes, | 137 | recipes, |
138 | customWebsiteRecipe, | ||
136 | isLoading, | 139 | isLoading, |
137 | hasLoadedRecipes, | 140 | hasLoadedRecipes, |
138 | showAddServiceInterface, | 141 | showAddServiceInterface, |
@@ -256,12 +259,19 @@ export default @injectSheet(styles) @observer class RecipesDashboard extends Com | |||
256 | )} | 259 | )} |
257 | <div className="recipes__list"> | 260 | <div className="recipes__list"> |
258 | {hasLoadedRecipes && recipes.length === 0 && recipeFilter !== 'dev' && ( | 261 | {hasLoadedRecipes && recipes.length === 0 && recipeFilter !== 'dev' && ( |
259 | <p className="align-middle settings__empty-state"> | 262 | <div className="align-middle settings__empty-state"> |
260 | <span className="emoji"> | 263 | <span className="emoji"> |
261 | <img src="./assets/images/emoji/dontknow.png" alt="" /> | 264 | <img src="./assets/images/emoji/dontknow.png" alt="" /> |
262 | </span> | 265 | </span> |
263 | {intl.formatMessage(messages.nothingFound)} | 266 | |
264 | </p> | 267 | <p className="settings__empty-state-text">{intl.formatMessage(messages.nothingFound)}</p> |
268 | |||
269 | <RecipeItem | ||
270 | key={customWebsiteRecipe.id} | ||
271 | recipe={customWebsiteRecipe} | ||
272 | onClick={() => isLoggedIn && showAddServiceInterface({ recipeId: customWebsiteRecipe.id })} | ||
273 | /> | ||
274 | </div> | ||
265 | )} | 275 | )} |
266 | {communityRecipes.map(recipe => ( | 276 | {communityRecipes.map(recipe => ( |
267 | <RecipeItem | 277 | <RecipeItem |
diff --git a/src/components/settings/services/ServicesDashboard.js b/src/components/settings/services/ServicesDashboard.js index 826dbb176..d88be74a4 100644 --- a/src/components/settings/services/ServicesDashboard.js +++ b/src/components/settings/services/ServicesDashboard.js | |||
@@ -23,7 +23,7 @@ const messages = defineMessages({ | |||
23 | }, | 23 | }, |
24 | noServicesAdded: { | 24 | noServicesAdded: { |
25 | id: 'settings.services.noServicesAdded', | 25 | id: 'settings.services.noServicesAdded', |
26 | defaultMessage: '!!!You haven\'t added any services yet.', | 26 | defaultMessage: '!!!Start by adding a service.', |
27 | }, | 27 | }, |
28 | noServiceFound: { | 28 | noServiceFound: { |
29 | id: 'settings.recipes.nothingFound', | 29 | id: 'settings.recipes.nothingFound', |
@@ -95,7 +95,7 @@ export default @observer class ServicesDashboard extends Component { | |||
95 | </div> | 95 | </div> |
96 | <LimitReachedInfobox /> | 96 | <LimitReachedInfobox /> |
97 | <div className="settings__body"> | 97 | <div className="settings__body"> |
98 | {!isLoading && ( | 98 | {services.length !== 0 && !isLoading && ( |
99 | <SearchInput | 99 | <SearchInput |
100 | placeholder={intl.formatMessage(messages.searchService)} | 100 | placeholder={intl.formatMessage(messages.searchService)} |
101 | onChange={needle => filterServices({ needle })} | 101 | onChange={needle => filterServices({ needle })} |
@@ -143,7 +143,7 @@ export default @observer class ServicesDashboard extends Component { | |||
143 | <div className="align-middle settings__empty-state"> | 143 | <div className="align-middle settings__empty-state"> |
144 | <p className="settings__empty-text"> | 144 | <p className="settings__empty-text"> |
145 | <span className="emoji"> | 145 | <span className="emoji"> |
146 | <img src="./assets/images/emoji/sad.png" alt="" /> | 146 | <img src="./assets/images/emoji/star.png" alt="" /> |
147 | </span> | 147 | </span> |
148 | {intl.formatMessage(messages.noServicesAdded)} | 148 | {intl.formatMessage(messages.noServicesAdded)} |
149 | </p> | 149 | </p> |
diff --git a/src/components/settings/settings/EditSettingsForm.js b/src/components/settings/settings/EditSettingsForm.js index 031203308..b6698b8e2 100644 --- a/src/components/settings/settings/EditSettingsForm.js +++ b/src/components/settings/settings/EditSettingsForm.js | |||
@@ -7,6 +7,7 @@ import { defineMessages, intlShape } from 'react-intl'; | |||
7 | import Form from '../../../lib/Form'; | 7 | import Form from '../../../lib/Form'; |
8 | import Button from '../../ui/Button'; | 8 | import Button from '../../ui/Button'; |
9 | import Toggle from '../../ui/Toggle'; | 9 | import Toggle from '../../ui/Toggle'; |
10 | import ToggleRaw from '../../ui/ToggleRaw'; | ||
10 | import Select from '../../ui/Select'; | 11 | import Select from '../../ui/Select'; |
11 | import PremiumFeatureContainer from '../../ui/PremiumFeatureContainer'; | 12 | import PremiumFeatureContainer from '../../ui/PremiumFeatureContainer'; |
12 | import Input from '../../ui/Input'; | 13 | import Input from '../../ui/Input'; |
@@ -170,6 +171,7 @@ export default @observer class EditSettingsForm extends Component { | |||
170 | hibernationEnabled: PropTypes.bool.isRequired, | 171 | hibernationEnabled: PropTypes.bool.isRequired, |
171 | isDarkmodeEnabled: PropTypes.bool.isRequired, | 172 | isDarkmodeEnabled: PropTypes.bool.isRequired, |
172 | isAdaptableDarkModeEnabled: PropTypes.bool.isRequired, | 173 | isAdaptableDarkModeEnabled: PropTypes.bool.isRequired, |
174 | isNightlyEnabled: PropTypes.bool.isRequired, | ||
173 | openProcessManager: PropTypes.func.isRequired, | 175 | openProcessManager: PropTypes.func.isRequired, |
174 | }; | 176 | }; |
175 | 177 | ||
@@ -224,6 +226,7 @@ export default @observer class EditSettingsForm extends Component { | |||
224 | isDarkmodeEnabled, | 226 | isDarkmodeEnabled, |
225 | openProcessManager, | 227 | openProcessManager, |
226 | isTodosActivated, | 228 | isTodosActivated, |
229 | isNightlyEnabled, | ||
227 | } = this.props; | 230 | } = this.props; |
228 | const { intl } = this.context; | 231 | const { intl } = this.context; |
229 | 232 | ||
@@ -593,6 +596,15 @@ export default @observer class EditSettingsForm extends Component { | |||
593 | {automaticUpdates && ( | 596 | {automaticUpdates && ( |
594 | <div> | 597 | <div> |
595 | <Toggle field={form.$('beta')} /> | 598 | <Toggle field={form.$('beta')} /> |
599 | <ToggleRaw | ||
600 | field={{ | ||
601 | value: isNightlyEnabled, | ||
602 | id: 'nightly', | ||
603 | label: 'Include nightly versions', | ||
604 | name: 'Nightly builds', | ||
605 | }} | ||
606 | onChange={window.ferdi.features.nightlyBuilds.toggleFeature} | ||
607 | /> | ||
596 | {updateIsReadyToInstall ? ( | 608 | {updateIsReadyToInstall ? ( |
597 | <Button | 609 | <Button |
598 | label={intl.formatMessage(messages.buttonInstallUpdate)} | 610 | label={intl.formatMessage(messages.buttonInstallUpdate)} |
diff --git a/src/components/ui/ToggleRaw.js b/src/components/ui/ToggleRaw.js new file mode 100644 index 000000000..ee817356b --- /dev/null +++ b/src/components/ui/ToggleRaw.js | |||
@@ -0,0 +1,74 @@ | |||
1 | /** | ||
2 | * "Raw" Toggle - for usage without a MobX Form element | ||
3 | */ | ||
4 | import React, { Component } from 'react'; | ||
5 | import PropTypes from 'prop-types'; | ||
6 | import { observer } from 'mobx-react'; | ||
7 | import classnames from 'classnames'; | ||
8 | |||
9 | export default @observer class ToggleRaw extends Component { | ||
10 | static propTypes = { | ||
11 | onChange: PropTypes.func.isRequired, | ||
12 | field: PropTypes.shape({ | ||
13 | value: PropTypes.bool.isRequired, | ||
14 | id: PropTypes.string, | ||
15 | name: PropTypes.string, | ||
16 | label: PropTypes.string, | ||
17 | }).isRequired, | ||
18 | className: PropTypes.string, | ||
19 | showLabel: PropTypes.bool, | ||
20 | disabled: PropTypes.bool, | ||
21 | }; | ||
22 | |||
23 | static defaultProps = { | ||
24 | className: '', | ||
25 | showLabel: true, | ||
26 | disabled: false, | ||
27 | }; | ||
28 | |||
29 | onChange(e) { | ||
30 | const { onChange } = this.props; | ||
31 | |||
32 | onChange(e); | ||
33 | } | ||
34 | |||
35 | render() { | ||
36 | const { | ||
37 | field, | ||
38 | className, | ||
39 | showLabel, | ||
40 | disabled, | ||
41 | } = this.props; | ||
42 | |||
43 | return ( | ||
44 | <div | ||
45 | className={classnames([ | ||
46 | 'franz-form__field', | ||
47 | 'franz-form__toggle-wrapper', | ||
48 | 'franz-form__toggle-disabled', | ||
49 | className, | ||
50 | ])} | ||
51 | > | ||
52 | <label | ||
53 | htmlFor={field.id} | ||
54 | className={classnames({ | ||
55 | 'franz-form__toggle': true, | ||
56 | 'is-active': field.value, | ||
57 | })} | ||
58 | > | ||
59 | <div className="franz-form__toggle-button" /> | ||
60 | <input | ||
61 | type="checkbox" | ||
62 | id={field.id} | ||
63 | name={field.name} | ||
64 | value={field.name} | ||
65 | checked={field.value} | ||
66 | onChange={e => (!disabled ? this.onChange(e) : null)} | ||
67 | /> | ||
68 | </label> | ||
69 | {field.error && <div className={field.error}>{field.error}</div>} | ||
70 | {field.label && showLabel && <label className="franz-form__label" htmlFor={field.id}>{field.label}</label>} | ||
71 | </div> | ||
72 | ); | ||
73 | } | ||
74 | } | ||
diff --git a/src/config.js b/src/config.js index f9eecf375..c53ec7da9 100644 --- a/src/config.js +++ b/src/config.js | |||
@@ -130,6 +130,7 @@ export const DEFAULT_APP_SETTINGS = { | |||
130 | serviceRibbonWidth: 68, | 130 | serviceRibbonWidth: 68, |
131 | iconSize: iconSizeBias, | 131 | iconSize: iconSizeBias, |
132 | sentry: false, | 132 | sentry: false, |
133 | nightly: false, | ||
133 | navigationBarBehaviour: 'custom', | 134 | navigationBarBehaviour: 'custom', |
134 | }; | 135 | }; |
135 | 136 | ||
diff --git a/src/containers/settings/EditSettingsScreen.js b/src/containers/settings/EditSettingsScreen.js index c6149fd9e..aa50bac68 100644 --- a/src/containers/settings/EditSettingsScreen.js +++ b/src/containers/settings/EditSettingsScreen.js | |||
@@ -586,6 +586,7 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e | |||
586 | isAdaptableDarkModeEnabled={this.props.stores.settings.app.adaptableDarkMode} | 586 | isAdaptableDarkModeEnabled={this.props.stores.settings.app.adaptableDarkMode} |
587 | isTodosActivated={this.props.stores.todos.isFeatureEnabledByUser} | 587 | isTodosActivated={this.props.stores.todos.isFeatureEnabledByUser} |
588 | isUsingCustomTodoService={this.props.stores.todos.isUsingCustomTodoService} | 588 | isUsingCustomTodoService={this.props.stores.todos.isUsingCustomTodoService} |
589 | isNightlyEnabled={this.props.stores.settings.app.nightly} | ||
589 | openProcessManager={() => this.openProcessManager()} | 590 | openProcessManager={() => this.openProcessManager()} |
590 | /> | 591 | /> |
591 | </ErrorBoundary> | 592 | </ErrorBoundary> |
diff --git a/src/containers/settings/RecipesScreen.js b/src/containers/settings/RecipesScreen.js index 60071b402..40e32ff37 100644 --- a/src/containers/settings/RecipesScreen.js +++ b/src/containers/settings/RecipesScreen.js | |||
@@ -139,6 +139,8 @@ export default @inject('stores', 'actions') @observer class RecipesScreen extend | |||
139 | ), | 139 | ), |
140 | ]) : recipeFilter; | 140 | ]) : recipeFilter; |
141 | 141 | ||
142 | const customWebsiteRecipe = recipePreviews.all.find(service => service.id === 'franz-custom-website'); | ||
143 | |||
142 | const isLoading = recipePreviews.featuredRecipePreviewsRequest.isExecuting | 144 | const isLoading = recipePreviews.featuredRecipePreviewsRequest.isExecuting |
143 | || recipePreviews.allRecipePreviewsRequest.isExecuting | 145 | || recipePreviews.allRecipePreviewsRequest.isExecuting |
144 | || recipes.installRecipeRequest.isExecuting | 146 | || recipes.installRecipeRequest.isExecuting |
@@ -150,6 +152,7 @@ export default @inject('stores', 'actions') @observer class RecipesScreen extend | |||
150 | <ErrorBoundary> | 152 | <ErrorBoundary> |
151 | <RecipesDashboard | 153 | <RecipesDashboard |
152 | recipes={allRecipes} | 154 | recipes={allRecipes} |
155 | customWebsiteRecipe={customWebsiteRecipe} | ||
153 | isLoading={isLoading} | 156 | isLoading={isLoading} |
154 | addedServiceCount={services.all.length} | 157 | addedServiceCount={services.all.length} |
155 | isPremium={user.data.isPremium} | 158 | isPremium={user.data.isPremium} |
diff --git a/src/electron/ipc-api/autoUpdate.js b/src/electron/ipc-api/autoUpdate.js index 8c4d908dc..a81bc918f 100644 --- a/src/electron/ipc-api/autoUpdate.js +++ b/src/electron/ipc-api/autoUpdate.js | |||
@@ -15,6 +15,15 @@ export default (params) => { | |||
15 | try { | 15 | try { |
16 | autoUpdater.autoInstallOnAppQuit = false; | 16 | autoUpdater.autoInstallOnAppQuit = false; |
17 | autoUpdater.allowPrerelease = Boolean(params.settings.app.get('beta')); | 17 | autoUpdater.allowPrerelease = Boolean(params.settings.app.get('beta')); |
18 | |||
19 | if (params.settings.app.get('nightly')) { | ||
20 | autoUpdater.setFeedURL({ | ||
21 | provider: 'github', | ||
22 | repo: 'nightlies', | ||
23 | owner: 'getferdi', | ||
24 | }); | ||
25 | } | ||
26 | |||
18 | if (args.action === 'check') { | 27 | if (args.action === 'check') { |
19 | autoUpdater.checkForUpdates(); | 28 | autoUpdater.checkForUpdates(); |
20 | } else if (args.action === 'install') { | 29 | } else if (args.action === 'install') { |
diff --git a/src/features/nightlyBuilds/Component.js b/src/features/nightlyBuilds/Component.js new file mode 100644 index 000000000..b340a0a7e --- /dev/null +++ b/src/features/nightlyBuilds/Component.js | |||
@@ -0,0 +1,141 @@ | |||
1 | import React, { Component } from 'react'; | ||
2 | import PropTypes from 'prop-types'; | ||
3 | import { observer, inject } from 'mobx-react'; | ||
4 | import injectSheet from 'react-jss'; | ||
5 | import { defineMessages, intlShape } from 'react-intl'; | ||
6 | import { H1 } from '@meetfranz/ui'; | ||
7 | |||
8 | import Modal from '../../components/ui/Modal'; | ||
9 | import Button from '../../components/ui/Button'; | ||
10 | import { state as ModalState } from '.'; | ||
11 | import SettingsStore from '../../stores/SettingsStore'; | ||
12 | |||
13 | const messages = defineMessages({ | ||
14 | title: { | ||
15 | id: 'feature.nightlyBuilds.title', | ||
16 | defaultMessage: '!!!Nightly Builds', | ||
17 | }, | ||
18 | info: { | ||
19 | id: 'feature.nightlyBuilds.info', | ||
20 | defaultMessage: '!!!Nightly builds are highly experimental versions of Ferdi that may contain unpolished or uncompleted features. These nightly builds are mainly used by developers to test their newly developed features and how they will perform in the final build. If you don\'t know what you are doing, we suggest not activating nightly builds.', | ||
21 | }, | ||
22 | activate: { | ||
23 | id: 'feature.nightlyBuilds.activate', | ||
24 | defaultMessage: '!!!Activate', | ||
25 | }, | ||
26 | cancel: { | ||
27 | id: 'feature.nightlyBuilds.cancel', | ||
28 | defaultMessage: '!!!Cancel', | ||
29 | }, | ||
30 | }); | ||
31 | |||
32 | const styles = () => ({ | ||
33 | info: { | ||
34 | paddingTop: 20, | ||
35 | paddingBottom: 20, | ||
36 | }, | ||
37 | headline: { | ||
38 | fontSize: 20, | ||
39 | marginBottom: 20, | ||
40 | }, | ||
41 | buttonContainer: { | ||
42 | display: 'flex', | ||
43 | }, | ||
44 | button: { | ||
45 | width: '50%', | ||
46 | marginTop: 10, | ||
47 | cursor: 'pointer', | ||
48 | }, | ||
49 | activateButton: { | ||
50 | marginRight: 10, | ||
51 | background: '#c45a5a !important', | ||
52 | color: '#ffffff !important', | ||
53 | }, | ||
54 | }); | ||
55 | |||
56 | export default @injectSheet(styles) @inject('stores', 'actions') @observer class nightlyBuildsModal extends Component { | ||
57 | static contextTypes = { | ||
58 | intl: intlShape, | ||
59 | }; | ||
60 | |||
61 | close() { | ||
62 | ModalState.isModalVisible = false; | ||
63 | |||
64 | const { ui } = this.props.actions; | ||
65 | ui.openSettings({ path: 'app' }); | ||
66 | } | ||
67 | |||
68 | activate() { | ||
69 | const { settings, user } = this.props.actions; | ||
70 | |||
71 | settings.update({ | ||
72 | type: 'app', | ||
73 | data: { | ||
74 | nightly: true, | ||
75 | }, | ||
76 | }); | ||
77 | user.update({ | ||
78 | userData: { | ||
79 | nightly: true, | ||
80 | }, | ||
81 | }); | ||
82 | this.close(); | ||
83 | } | ||
84 | |||
85 | render() { | ||
86 | const { isModalVisible } = ModalState; | ||
87 | |||
88 | const { | ||
89 | classes, | ||
90 | } = this.props; | ||
91 | |||
92 | const { intl } = this.context; | ||
93 | |||
94 | return ( | ||
95 | <Modal | ||
96 | isOpen={isModalVisible} | ||
97 | shouldCloseOnOverlayClick | ||
98 | close={this.close.bind(this)} | ||
99 | > | ||
100 | <H1 className={classes.headline}> | ||
101 | {intl.formatMessage(messages.title)} | ||
102 | </H1> | ||
103 | |||
104 | <p className={classes.info}>{intl.formatMessage(messages.info)}</p> | ||
105 | |||
106 | <div className={classes.buttonContainer}> | ||
107 | <Button | ||
108 | type="button" | ||
109 | label={intl.formatMessage(messages.activate)} | ||
110 | className={`${classes.button} ${classes.activateButton}`} | ||
111 | onClick={() => this.activate()} | ||
112 | /> | ||
113 | <Button | ||
114 | type="button" | ||
115 | label={intl.formatMessage(messages.cancel)} | ||
116 | className={classes.button} | ||
117 | onClick={() => this.close()} | ||
118 | /> | ||
119 | </div> | ||
120 | </Modal> | ||
121 | ); | ||
122 | } | ||
123 | } | ||
124 | |||
125 | nightlyBuildsModal.wrappedComponent.propTypes = { | ||
126 | stores: PropTypes.shape({ | ||
127 | settings: PropTypes.instanceOf(SettingsStore).isRequired, | ||
128 | }).isRequired, | ||
129 | actions: PropTypes.shape({ | ||
130 | settings: PropTypes.shape({ | ||
131 | update: PropTypes.func.isRequired, | ||
132 | }).isRequired, | ||
133 | user: PropTypes.shape({ | ||
134 | update: PropTypes.func.isRequired, | ||
135 | }).isRequired, | ||
136 | ui: PropTypes.shape({ | ||
137 | openSettings: PropTypes.func.isRequired, | ||
138 | }).isRequired, | ||
139 | }).isRequired, | ||
140 | classes: PropTypes.object.isRequired, | ||
141 | }; | ||
diff --git a/src/features/nightlyBuilds/index.js b/src/features/nightlyBuilds/index.js new file mode 100644 index 000000000..34fe37d4d --- /dev/null +++ b/src/features/nightlyBuilds/index.js | |||
@@ -0,0 +1,45 @@ | |||
1 | import { observable } from 'mobx'; | ||
2 | |||
3 | export { default as Component } from './Component'; | ||
4 | |||
5 | const debug = require('debug')('Ferdi:feature:nightlyBuilds'); | ||
6 | |||
7 | const defaultState = { | ||
8 | isModalVisible: false, | ||
9 | }; | ||
10 | |||
11 | export const state = observable(defaultState); | ||
12 | |||
13 | export default function initialize() { | ||
14 | debug('Initialize nightlyBuilds feature'); | ||
15 | |||
16 | function showModal() { | ||
17 | state.isModalVisible = true; | ||
18 | } | ||
19 | |||
20 | function toggleFeature() { | ||
21 | if (window.ferdi.stores.settings.app.nightly) { | ||
22 | window.ferdi.actions.settings.update({ | ||
23 | type: 'app', | ||
24 | data: { | ||
25 | nightly: false, | ||
26 | }, | ||
27 | }); | ||
28 | window.ferdi.actions.user.update({ | ||
29 | userData: { | ||
30 | nightly: false, | ||
31 | }, | ||
32 | }); | ||
33 | } else { | ||
34 | // We need to close the settings, otherwise the modal will be drawn under the settings window | ||
35 | window.ferdi.actions.ui.closeSettings(); | ||
36 | showModal(); | ||
37 | } | ||
38 | } | ||
39 | |||
40 | window.ferdi.features.nightlyBuilds = { | ||
41 | state, | ||
42 | showModal, | ||
43 | toggleFeature, | ||
44 | }; | ||
45 | } | ||
diff --git a/src/features/workspaces/components/EditWorkspaceForm.js b/src/features/workspaces/components/EditWorkspaceForm.js index b3551a7b9..0f199ffb1 100644 --- a/src/features/workspaces/components/EditWorkspaceForm.js +++ b/src/features/workspaces/components/EditWorkspaceForm.js | |||
@@ -48,7 +48,7 @@ const messages = defineMessages({ | |||
48 | }, | 48 | }, |
49 | noServicesAdded: { | 49 | noServicesAdded: { |
50 | id: 'settings.services.noServicesAdded', | 50 | id: 'settings.services.noServicesAdded', |
51 | defaultMessage: '!!!You haven\'t added any services yet.', | 51 | defaultMessage: '!!!Start by adding a service.', |
52 | }, | 52 | }, |
53 | discoverServices: { | 53 | discoverServices: { |
54 | id: 'settings.services.discoverServices', | 54 | id: 'settings.services.discoverServices', |
diff --git a/src/features/workspaces/components/WorkspacesDashboard.js b/src/features/workspaces/components/WorkspacesDashboard.js index b499e02a4..a90bb37e9 100644 --- a/src/features/workspaces/components/WorkspacesDashboard.js +++ b/src/features/workspaces/components/WorkspacesDashboard.js | |||
@@ -23,7 +23,7 @@ const messages = defineMessages({ | |||
23 | }, | 23 | }, |
24 | noServicesAdded: { | 24 | noServicesAdded: { |
25 | id: 'settings.workspaces.noWorkspacesAdded', | 25 | id: 'settings.workspaces.noWorkspacesAdded', |
26 | defaultMessage: '!!!You haven\'t added any workspaces yet.', | 26 | defaultMessage: '!!!You haven\'t created any workspaces yet.', |
27 | }, | 27 | }, |
28 | workspacesRequestFailed: { | 28 | workspacesRequestFailed: { |
29 | id: 'settings.workspaces.workspacesRequestFailed', | 29 | id: 'settings.workspaces.workspacesRequestFailed', |
diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json index 58f37ebad..801f68cc0 100644 --- a/src/i18n/locales/defaultMessages.json +++ b/src/i18n/locales/defaultMessages.json | |||
@@ -1056,52 +1056,52 @@ | |||
1056 | "defaultMessage": "!!!Your services have been updated.", | 1056 | "defaultMessage": "!!!Your services have been updated.", |
1057 | "end": { | 1057 | "end": { |
1058 | "column": 3, | 1058 | "column": 3, |
1059 | "line": 34 | 1059 | "line": 35 |
1060 | }, | 1060 | }, |
1061 | "file": "src/components/layout/AppLayout.js", | 1061 | "file": "src/components/layout/AppLayout.js", |
1062 | "id": "infobar.servicesUpdated", | 1062 | "id": "infobar.servicesUpdated", |
1063 | "start": { | 1063 | "start": { |
1064 | "column": 19, | 1064 | "column": 19, |
1065 | "line": 31 | 1065 | "line": 32 |
1066 | } | 1066 | } |
1067 | }, | 1067 | }, |
1068 | { | 1068 | { |
1069 | "defaultMessage": "!!!Reload services", | 1069 | "defaultMessage": "!!!Reload services", |
1070 | "end": { | 1070 | "end": { |
1071 | "column": 3, | 1071 | "column": 3, |
1072 | "line": 38 | 1072 | "line": 39 |
1073 | }, | 1073 | }, |
1074 | "file": "src/components/layout/AppLayout.js", | 1074 | "file": "src/components/layout/AppLayout.js", |
1075 | "id": "infobar.buttonReloadServices", | 1075 | "id": "infobar.buttonReloadServices", |
1076 | "start": { | 1076 | "start": { |
1077 | "column": 24, | 1077 | "column": 24, |
1078 | "line": 35 | 1078 | "line": 36 |
1079 | } | 1079 | } |
1080 | }, | 1080 | }, |
1081 | { | 1081 | { |
1082 | "defaultMessage": "!!!Could not load services and user information", | 1082 | "defaultMessage": "!!!Could not load services and user information", |
1083 | "end": { | 1083 | "end": { |
1084 | "column": 3, | 1084 | "column": 3, |
1085 | "line": 42 | 1085 | "line": 43 |
1086 | }, | 1086 | }, |
1087 | "file": "src/components/layout/AppLayout.js", | 1087 | "file": "src/components/layout/AppLayout.js", |
1088 | "id": "infobar.requiredRequestsFailed", | 1088 | "id": "infobar.requiredRequestsFailed", |
1089 | "start": { | 1089 | "start": { |
1090 | "column": 26, | 1090 | "column": 26, |
1091 | "line": 39 | 1091 | "line": 40 |
1092 | } | 1092 | } |
1093 | }, | 1093 | }, |
1094 | { | 1094 | { |
1095 | "defaultMessage": "!!!There were errors while trying to perform an authenticated request. Please try logging out and back in if this error persists.", | 1095 | "defaultMessage": "!!!There were errors while trying to perform an authenticated request. Please try logging out and back in if this error persists.", |
1096 | "end": { | 1096 | "end": { |
1097 | "column": 3, | 1097 | "column": 3, |
1098 | "line": 46 | 1098 | "line": 47 |
1099 | }, | 1099 | }, |
1100 | "file": "src/components/layout/AppLayout.js", | 1100 | "file": "src/components/layout/AppLayout.js", |
1101 | "id": "infobar.authRequestFailed", | 1101 | "id": "infobar.authRequestFailed", |
1102 | "start": { | 1102 | "start": { |
1103 | "column": 21, | 1103 | "column": 21, |
1104 | "line": 43 | 1104 | "line": 44 |
1105 | } | 1105 | } |
1106 | } | 1106 | } |
1107 | ], | 1107 | ], |
@@ -2296,182 +2296,182 @@ | |||
2296 | "defaultMessage": "!!!Available Services", | 2296 | "defaultMessage": "!!!Available Services", |
2297 | "end": { | 2297 | "end": { |
2298 | "column": 3, | 2298 | "column": 3, |
2299 | "line": 23 | 2299 | "line": 24 |
2300 | }, | 2300 | }, |
2301 | "file": "src/components/settings/recipes/RecipesDashboard.js", | 2301 | "file": "src/components/settings/recipes/RecipesDashboard.js", |
2302 | "id": "settings.recipes.headline", | 2302 | "id": "settings.recipes.headline", |
2303 | "start": { | 2303 | "start": { |
2304 | "column": 12, | 2304 | "column": 12, |
2305 | "line": 20 | 2305 | "line": 21 |
2306 | } | 2306 | } |
2307 | }, | 2307 | }, |
2308 | { | 2308 | { |
2309 | "defaultMessage": "!!!Search service", | 2309 | "defaultMessage": "!!!Search service", |
2310 | "end": { | 2310 | "end": { |
2311 | "column": 3, | 2311 | "column": 3, |
2312 | "line": 27 | 2312 | "line": 28 |
2313 | }, | 2313 | }, |
2314 | "file": "src/components/settings/recipes/RecipesDashboard.js", | 2314 | "file": "src/components/settings/recipes/RecipesDashboard.js", |
2315 | "id": "settings.searchService", | 2315 | "id": "settings.searchService", |
2316 | "start": { | 2316 | "start": { |
2317 | "column": 17, | 2317 | "column": 17, |
2318 | "line": 24 | 2318 | "line": 25 |
2319 | } | 2319 | } |
2320 | }, | 2320 | }, |
2321 | { | 2321 | { |
2322 | "defaultMessage": "!!!Most popular", | 2322 | "defaultMessage": "!!!Most popular", |
2323 | "end": { | 2323 | "end": { |
2324 | "column": 3, | 2324 | "column": 3, |
2325 | "line": 31 | 2325 | "line": 32 |
2326 | }, | 2326 | }, |
2327 | "file": "src/components/settings/recipes/RecipesDashboard.js", | 2327 | "file": "src/components/settings/recipes/RecipesDashboard.js", |
2328 | "id": "settings.recipes.mostPopular", | 2328 | "id": "settings.recipes.mostPopular", |
2329 | "start": { | 2329 | "start": { |
2330 | "column": 22, | 2330 | "column": 22, |
2331 | "line": 28 | 2331 | "line": 29 |
2332 | } | 2332 | } |
2333 | }, | 2333 | }, |
2334 | { | 2334 | { |
2335 | "defaultMessage": "!!!All services", | 2335 | "defaultMessage": "!!!All services", |
2336 | "end": { | 2336 | "end": { |
2337 | "column": 3, | 2337 | "column": 3, |
2338 | "line": 35 | 2338 | "line": 36 |
2339 | }, | 2339 | }, |
2340 | "file": "src/components/settings/recipes/RecipesDashboard.js", | 2340 | "file": "src/components/settings/recipes/RecipesDashboard.js", |
2341 | "id": "settings.recipes.all", | 2341 | "id": "settings.recipes.all", |
2342 | "start": { | 2342 | "start": { |
2343 | "column": 14, | 2343 | "column": 14, |
2344 | "line": 32 | 2344 | "line": 33 |
2345 | } | 2345 | } |
2346 | }, | 2346 | }, |
2347 | { | 2347 | { |
2348 | "defaultMessage": "!!!Custom Services", | 2348 | "defaultMessage": "!!!Custom Services", |
2349 | "end": { | 2349 | "end": { |
2350 | "column": 3, | 2350 | "column": 3, |
2351 | "line": 39 | 2351 | "line": 40 |
2352 | }, | 2352 | }, |
2353 | "file": "src/components/settings/recipes/RecipesDashboard.js", | 2353 | "file": "src/components/settings/recipes/RecipesDashboard.js", |
2354 | "id": "settings.recipes.custom", | 2354 | "id": "settings.recipes.custom", |
2355 | "start": { | 2355 | "start": { |
2356 | "column": 17, | 2356 | "column": 17, |
2357 | "line": 36 | 2357 | "line": 37 |
2358 | } | 2358 | } |
2359 | }, | 2359 | }, |
2360 | { | 2360 | { |
2361 | "defaultMessage": "!!!Sorry, but no service matched your search term.", | 2361 | "defaultMessage": "!!!Sorry, but no service matched your search term - but you can still probably add it using the \"Custom Website\" option:", |
2362 | "end": { | 2362 | "end": { |
2363 | "column": 3, | 2363 | "column": 3, |
2364 | "line": 43 | 2364 | "line": 44 |
2365 | }, | 2365 | }, |
2366 | "file": "src/components/settings/recipes/RecipesDashboard.js", | 2366 | "file": "src/components/settings/recipes/RecipesDashboard.js", |
2367 | "id": "settings.recipes.nothingFound", | 2367 | "id": "settings.recipes.nothingFound", |
2368 | "start": { | 2368 | "start": { |
2369 | "column": 16, | 2369 | "column": 16, |
2370 | "line": 40 | 2370 | "line": 41 |
2371 | } | 2371 | } |
2372 | }, | 2372 | }, |
2373 | { | 2373 | { |
2374 | "defaultMessage": "!!!Service successfully added", | 2374 | "defaultMessage": "!!!Service successfully added", |
2375 | "end": { | 2375 | "end": { |
2376 | "column": 3, | 2376 | "column": 3, |
2377 | "line": 47 | 2377 | "line": 48 |
2378 | }, | 2378 | }, |
2379 | "file": "src/components/settings/recipes/RecipesDashboard.js", | 2379 | "file": "src/components/settings/recipes/RecipesDashboard.js", |
2380 | "id": "settings.recipes.servicesSuccessfulAddedInfo", | 2380 | "id": "settings.recipes.servicesSuccessfulAddedInfo", |
2381 | "start": { | 2381 | "start": { |
2382 | "column": 31, | 2382 | "column": 31, |
2383 | "line": 44 | 2383 | "line": 45 |
2384 | } | 2384 | } |
2385 | }, | 2385 | }, |
2386 | { | 2386 | { |
2387 | "defaultMessage": "!!!Missing a service?", | 2387 | "defaultMessage": "!!!Missing a service?", |
2388 | "end": { | 2388 | "end": { |
2389 | "column": 3, | 2389 | "column": 3, |
2390 | "line": 51 | 2390 | "line": 52 |
2391 | }, | 2391 | }, |
2392 | "file": "src/components/settings/recipes/RecipesDashboard.js", | 2392 | "file": "src/components/settings/recipes/RecipesDashboard.js", |
2393 | "id": "settings.recipes.missingService", | 2393 | "id": "settings.recipes.missingService", |
2394 | "start": { | 2394 | "start": { |
2395 | "column": 18, | 2395 | "column": 18, |
2396 | "line": 48 | 2396 | "line": 49 |
2397 | } | 2397 | } |
2398 | }, | 2398 | }, |
2399 | { | 2399 | { |
2400 | "defaultMessage": "!!!To add a custom service, copy the recipe folder into:", | 2400 | "defaultMessage": "!!!To add a custom service, copy the recipe folder into:", |
2401 | "end": { | 2401 | "end": { |
2402 | "column": 3, | 2402 | "column": 3, |
2403 | "line": 55 | 2403 | "line": 56 |
2404 | }, | 2404 | }, |
2405 | "file": "src/components/settings/recipes/RecipesDashboard.js", | 2405 | "file": "src/components/settings/recipes/RecipesDashboard.js", |
2406 | "id": "settings.recipes.customService.intro", | 2406 | "id": "settings.recipes.customService.intro", |
2407 | "start": { | 2407 | "start": { |
2408 | "column": 21, | 2408 | "column": 21, |
2409 | "line": 52 | 2409 | "line": 53 |
2410 | } | 2410 | } |
2411 | }, | 2411 | }, |
2412 | { | 2412 | { |
2413 | "defaultMessage": "!!!Open directory", | 2413 | "defaultMessage": "!!!Open directory", |
2414 | "end": { | 2414 | "end": { |
2415 | "column": 3, | 2415 | "column": 3, |
2416 | "line": 59 | 2416 | "line": 60 |
2417 | }, | 2417 | }, |
2418 | "file": "src/components/settings/recipes/RecipesDashboard.js", | 2418 | "file": "src/components/settings/recipes/RecipesDashboard.js", |
2419 | "id": "settings.recipes.customService.openFolder", | 2419 | "id": "settings.recipes.customService.openFolder", |
2420 | "start": { | 2420 | "start": { |
2421 | "column": 14, | 2421 | "column": 14, |
2422 | "line": 56 | 2422 | "line": 57 |
2423 | } | 2423 | } |
2424 | }, | 2424 | }, |
2425 | { | 2425 | { |
2426 | "defaultMessage": "!!!Developer Documentation", | 2426 | "defaultMessage": "!!!Developer Documentation", |
2427 | "end": { | 2427 | "end": { |
2428 | "column": 3, | 2428 | "column": 3, |
2429 | "line": 63 | 2429 | "line": 64 |
2430 | }, | 2430 | }, |
2431 | "file": "src/components/settings/recipes/RecipesDashboard.js", | 2431 | "file": "src/components/settings/recipes/RecipesDashboard.js", |
2432 | "id": "settings.recipes.customService.openDevDocs", | 2432 | "id": "settings.recipes.customService.openDevDocs", |
2433 | "start": { | 2433 | "start": { |
2434 | "column": 15, | 2434 | "column": 15, |
2435 | "line": 60 | 2435 | "line": 61 |
2436 | } | 2436 | } |
2437 | }, | 2437 | }, |
2438 | { | 2438 | { |
2439 | "defaultMessage": "!!!Custom 3rd Party Recipes", | 2439 | "defaultMessage": "!!!Custom 3rd Party Recipes", |
2440 | "end": { | 2440 | "end": { |
2441 | "column": 3, | 2441 | "column": 3, |
2442 | "line": 67 | 2442 | "line": 68 |
2443 | }, | 2443 | }, |
2444 | "file": "src/components/settings/recipes/RecipesDashboard.js", | 2444 | "file": "src/components/settings/recipes/RecipesDashboard.js", |
2445 | "id": "settings.recipes.customService.headline.customRecipes", | 2445 | "id": "settings.recipes.customService.headline.customRecipes", |
2446 | "start": { | 2446 | "start": { |
2447 | "column": 25, | 2447 | "column": 25, |
2448 | "line": 64 | 2448 | "line": 65 |
2449 | } | 2449 | } |
2450 | }, | 2450 | }, |
2451 | { | 2451 | { |
2452 | "defaultMessage": "!!!Community 3rd Party Recipes", | 2452 | "defaultMessage": "!!!Community 3rd Party Recipes", |
2453 | "end": { | 2453 | "end": { |
2454 | "column": 3, | 2454 | "column": 3, |
2455 | "line": 71 | 2455 | "line": 72 |
2456 | }, | 2456 | }, |
2457 | "file": "src/components/settings/recipes/RecipesDashboard.js", | 2457 | "file": "src/components/settings/recipes/RecipesDashboard.js", |
2458 | "id": "settings.recipes.customService.headline.communityRecipes", | 2458 | "id": "settings.recipes.customService.headline.communityRecipes", |
2459 | "start": { | 2459 | "start": { |
2460 | "column": 28, | 2460 | "column": 28, |
2461 | "line": 68 | 2461 | "line": 69 |
2462 | } | 2462 | } |
2463 | }, | 2463 | }, |
2464 | { | 2464 | { |
2465 | "defaultMessage": "!!!Your Development Service Recipes", | 2465 | "defaultMessage": "!!!Your Development Service Recipes", |
2466 | "end": { | 2466 | "end": { |
2467 | "column": 3, | 2467 | "column": 3, |
2468 | "line": 75 | 2468 | "line": 76 |
2469 | }, | 2469 | }, |
2470 | "file": "src/components/settings/recipes/RecipesDashboard.js", | 2470 | "file": "src/components/settings/recipes/RecipesDashboard.js", |
2471 | "id": "settings.recipes.customService.headline.devRecipes", | 2471 | "id": "settings.recipes.customService.headline.devRecipes", |
2472 | "start": { | 2472 | "start": { |
2473 | "column": 22, | 2473 | "column": 22, |
2474 | "line": 72 | 2474 | "line": 73 |
2475 | } | 2475 | } |
2476 | } | 2476 | } |
2477 | ], | 2477 | ], |
@@ -2976,7 +2976,7 @@ | |||
2976 | } | 2976 | } |
2977 | }, | 2977 | }, |
2978 | { | 2978 | { |
2979 | "defaultMessage": "!!!You haven't added any services yet.", | 2979 | "defaultMessage": "!!!Start by adding a service.", |
2980 | "end": { | 2980 | "end": { |
2981 | "column": 3, | 2981 | "column": 3, |
2982 | "line": 27 | 2982 | "line": 27 |
@@ -3075,403 +3075,403 @@ | |||
3075 | "defaultMessage": "!!!Settings", | 3075 | "defaultMessage": "!!!Settings", |
3076 | "end": { | 3076 | "end": { |
3077 | "column": 3, | 3077 | "column": 3, |
3078 | "line": 25 | 3078 | "line": 26 |
3079 | }, | 3079 | }, |
3080 | "file": "src/components/settings/settings/EditSettingsForm.js", | 3080 | "file": "src/components/settings/settings/EditSettingsForm.js", |
3081 | "id": "settings.app.headline", | 3081 | "id": "settings.app.headline", |
3082 | "start": { | 3082 | "start": { |
3083 | "column": 12, | 3083 | "column": 12, |
3084 | "line": 22 | 3084 | "line": 23 |
3085 | } | 3085 | } |
3086 | }, | 3086 | }, |
3087 | { | 3087 | { |
3088 | "defaultMessage": "!!!General", | 3088 | "defaultMessage": "!!!General", |
3089 | "end": { | 3089 | "end": { |
3090 | "column": 3, | 3090 | "column": 3, |
3091 | "line": 29 | 3091 | "line": 30 |
3092 | }, | 3092 | }, |
3093 | "file": "src/components/settings/settings/EditSettingsForm.js", | 3093 | "file": "src/components/settings/settings/EditSettingsForm.js", |
3094 | "id": "settings.app.headlineGeneral", | 3094 | "id": "settings.app.headlineGeneral", |
3095 | "start": { | 3095 | "start": { |
3096 | "column": 19, | 3096 | "column": 19, |
3097 | "line": 26 | 3097 | "line": 27 |
3098 | } | 3098 | } |
3099 | }, | 3099 | }, |
3100 | { | 3100 | { |
3101 | "defaultMessage": "!!!Sending telemetry data allows us to find errors in Ferdi - we will not send any personal information like your message data! Changing this option requires you to restart Ferdi.", | 3101 | "defaultMessage": "!!!Sending telemetry data allows us to find errors in Ferdi - we will not send any personal information like your message data! Changing this option requires you to restart Ferdi.", |
3102 | "end": { | 3102 | "end": { |
3103 | "column": 3, | 3103 | "column": 3, |
3104 | "line": 33 | 3104 | "line": 34 |
3105 | }, | 3105 | }, |
3106 | "file": "src/components/settings/settings/EditSettingsForm.js", | 3106 | "file": "src/components/settings/settings/EditSettingsForm.js", |
3107 | "id": "settings.app.sentryInfo", | 3107 | "id": "settings.app.sentryInfo", |
3108 | "start": { | 3108 | "start": { |
3109 | "column": 14, | 3109 | "column": 14, |
3110 | "line": 30 | 3110 | "line": 31 |
3111 | } | 3111 | } |
3112 | }, | 3112 | }, |
3113 | { | 3113 | { |
3114 | "defaultMessage": "!!!By default, Ferdi will keep all your services open and loaded in the background so they are ready when you want to use them. Service Hibernation will unload your services after a specified amount. This is useful to save RAM or keeping services from slowing down your computer.", | 3114 | "defaultMessage": "!!!By default, Ferdi will keep all your services open and loaded in the background so they are ready when you want to use them. Service Hibernation will unload your services after a specified amount. This is useful to save RAM or keeping services from slowing down your computer.", |
3115 | "end": { | 3115 | "end": { |
3116 | "column": 3, | 3116 | "column": 3, |
3117 | "line": 37 | 3117 | "line": 38 |
3118 | }, | 3118 | }, |
3119 | "file": "src/components/settings/settings/EditSettingsForm.js", | 3119 | "file": "src/components/settings/settings/EditSettingsForm.js", |
3120 | "id": "settings.app.hibernateInfo", | 3120 | "id": "settings.app.hibernateInfo", |
3121 | "start": { | 3121 | "start": { |
3122 | "column": 17, | 3122 | "column": 17, |
3123 | "line": 34 | 3123 | "line": 35 |
3124 | } | 3124 | } |
3125 | }, | 3125 | }, |
3126 | { | 3126 | { |
3127 | "defaultMessage": "!!!Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable", | 3127 | "defaultMessage": "!!!Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable", |
3128 | "end": { | 3128 | "end": { |
3129 | "column": 3, | 3129 | "column": 3, |
3130 | "line": 41 | 3130 | "line": 42 |
3131 | }, | 3131 | }, |
3132 | "file": "src/components/settings/settings/EditSettingsForm.js", | 3132 | "file": "src/components/settings/settings/EditSettingsForm.js", |
3133 | "id": "settings.app.inactivityLockInfo", | 3133 | "id": "settings.app.inactivityLockInfo", |
3134 | "start": { | 3134 | "start": { |
3135 | "column": 22, | 3135 | "column": 22, |
3136 | "line": 38 | 3136 | "line": 39 |
3137 | } | 3137 | } |
3138 | }, | 3138 | }, |
3139 | { | 3139 | { |
3140 | "defaultMessage": "!!!This server will be used for the \"Franz Todo\" feature. (default: https://app.franztodos.com)", | 3140 | "defaultMessage": "!!!This server will be used for the \"Franz Todo\" feature. (default: https://app.franztodos.com)", |
3141 | "end": { | 3141 | "end": { |
3142 | "column": 3, | 3142 | "column": 3, |
3143 | "line": 45 | 3143 | "line": 46 |
3144 | }, | 3144 | }, |
3145 | "file": "src/components/settings/settings/EditSettingsForm.js", | 3145 | "file": "src/components/settings/settings/EditSettingsForm.js", |
3146 | "id": "settings.app.todoServerInfo", | 3146 | "id": "settings.app.todoServerInfo", |
3147 | "start": { | 3147 | "start": { |
3148 | "column": 18, | 3148 | "column": 18, |
3149 | "line": 42 | 3149 | "line": 43 |
3150 | } | 3150 | } |
3151 | }, | 3151 | }, |
3152 | { | 3152 | { |
3153 | "defaultMessage": "!!!Password", | 3153 | "defaultMessage": "!!!Password", |
3154 | "end": { | 3154 | "end": { |
3155 | "column": 3, | 3155 | "column": 3, |
3156 | "line": 49 | 3156 | "line": 50 |
3157 | }, | 3157 | }, |
3158 | "file": "src/components/settings/settings/EditSettingsForm.js", | 3158 | "file": "src/components/settings/settings/EditSettingsForm.js", |
3159 | "id": "settings.app.lockedPassword", | 3159 | "id": "settings.app.lockedPassword", |
3160 | "start": { | 3160 | "start": { |
3161 | "column": 18, | 3161 | "column": 18, |
3162 | "line": 46 | 3162 | "line": 47 |
3163 | } | 3163 | } |
3164 | }, | 3164 | }, |
3165 | { | 3165 | { |
3166 | "defaultMessage": "!!!Please make sure to set a password you'll remember.\nIf you loose this password, you will have to reinstall Ferdi.", | 3166 | "defaultMessage": "!!!Please make sure to set a password you'll remember.\nIf you loose this password, you will have to reinstall Ferdi.", |
3167 | "end": { | 3167 | "end": { |
3168 | "column": 3, | 3168 | "column": 3, |
3169 | "line": 53 | 3169 | "line": 54 |
3170 | }, | 3170 | }, |
3171 | "file": "src/components/settings/settings/EditSettingsForm.js", | 3171 | "file": "src/components/settings/settings/EditSettingsForm.js", |
3172 | "id": "settings.app.lockedPasswordInfo", | 3172 | "id": "settings.app.lockedPasswordInfo", |
3173 | "start": { | 3173 | "start": { |
3174 | "column": 22, | 3174 | "column": 22, |
3175 | "line": 50 | 3175 | "line": 51 |
3176 | } | 3176 | } |
3177 | }, | 3177 | }, |
3178 | { | 3178 | { |
3179 | "defaultMessage": "!!!Password Lock allows you to keep your messages protected.\nUsing Password Lock, you will be prompted to enter your password everytime you start Ferdi or lock Ferdi yourself using the lock symbol in the bottom left corner or the shortcut CMD/CTRL+Shift+L.", | 3179 | "defaultMessage": "!!!Password Lock allows you to keep your messages protected.\nUsing Password Lock, you will be prompted to enter your password everytime you start Ferdi or lock Ferdi yourself using the lock symbol in the bottom left corner or the shortcut CMD/CTRL+Shift+L.", |
3180 | "end": { | 3180 | "end": { |
3181 | "column": 3, | 3181 | "column": 3, |
3182 | "line": 57 | 3182 | "line": 58 |
3183 | }, | 3183 | }, |
3184 | "file": "src/components/settings/settings/EditSettingsForm.js", | 3184 | "file": "src/components/settings/settings/EditSettingsForm.js", |
3185 | "id": "settings.app.lockInfo", | 3185 | "id": "settings.app.lockInfo", |
3186 | "start": { | 3186 | "start": { |
3187 | "column": 12, | 3187 | "column": 12, |
3188 | "line": 54 | 3188 | "line": 55 |
3189 | } | 3189 | } |
3190 | }, | 3190 | }, |
3191 | { | 3191 | { |
3192 | "defaultMessage": "!!!Times in 24-Hour-Format. End time can be before start time (e.g. start 17:00, end 09:00) to enable Do-not-Disturb overnight.", | 3192 | "defaultMessage": "!!!Times in 24-Hour-Format. End time can be before start time (e.g. start 17:00, end 09:00) to enable Do-not-Disturb overnight.", |
3193 | "end": { | 3193 | "end": { |
3194 | "column": 3, | 3194 | "column": 3, |
3195 | "line": 61 | 3195 | "line": 62 |
3196 | }, | 3196 | }, |
3197 | "file": "src/components/settings/settings/EditSettingsForm.js", | 3197 | "file": "src/components/settings/settings/EditSettingsForm.js", |
3198 | "id": "settings.app.scheduledDNDTimeInfo", | 3198 | "id": "settings.app.scheduledDNDTimeInfo", |
3199 | "start": { | 3199 | "start": { |
3200 | "column": 24, | 3200 | "column": 24, |
3201 | "line": 58 | 3201 | "line": 59 |
3202 | } | 3202 | } |
3203 | }, | 3203 | }, |
3204 | { | 3204 | { |
3205 | "defaultMessage": "!!!Scheduled Do-not-Disturb allows you to define a period of time in which you do not want to get Notifications from Ferdi.", | 3205 | "defaultMessage": "!!!Scheduled Do-not-Disturb allows you to define a period of time in which you do not want to get Notifications from Ferdi.", |
3206 | "end": { | 3206 | "end": { |
3207 | "column": 3, | 3207 | "column": 3, |
3208 | "line": 65 | 3208 | "line": 66 |
3209 | }, | 3209 | }, |
3210 | "file": "src/components/settings/settings/EditSettingsForm.js", | 3210 | "file": "src/components/settings/settings/EditSettingsForm.js", |
3211 | "id": "settings.app.scheduledDNDInfo", | 3211 | "id": "settings.app.scheduledDNDInfo", |
3212 | "start": { | 3212 | "start": { |
3213 | "column": 20, | 3213 | "column": 20, |
3214 | "line": 62 | 3214 | "line": 63 |
3215 | } | 3215 | } |
3216 | }, | 3216 | }, |
3217 | { | 3217 | { |
3218 | "defaultMessage": "!!!Language", | 3218 | "defaultMessage": "!!!Language", |
3219 | "end": { | 3219 | "end": { |
3220 | "column": 3, | 3220 | "column": 3, |
3221 | "line": 69 | 3221 | "line": 70 |
3222 | }, | 3222 | }, |
3223 | "file": "src/components/settings/settings/EditSettingsForm.js", | 3223 | "file": "src/components/settings/settings/EditSettingsForm.js", |
3224 | "id": "settings.app.headlineLanguage", | 3224 | "id": "settings.app.headlineLanguage", |
3225 | "start": { | 3225 | "start": { |
3226 | "column": 20, | 3226 | "column": 20, |
3227 | "line": 66 | 3227 | "line": 67 |
3228 | } | 3228 | } |
3229 | }, | 3229 | }, |
3230 | { | 3230 | { |
3231 | "defaultMessage": "!!!Updates", | 3231 | "defaultMessage": "!!!Updates", |
3232 | "end": { | 3232 | "end": { |
3233 | "column": 3, | 3233 | "column": 3, |
3234 | "line": 73 | 3234 | "line": 74 |
3235 | }, | 3235 | }, |
3236 | "file": "src/components/settings/settings/EditSettingsForm.js", | 3236 | "file": "src/components/settings/settings/EditSettingsForm.js", |
3237 | "id": "settings.app.headlineUpdates", | 3237 | "id": "settings.app.headlineUpdates", |
3238 | "start": { | 3238 | "start": { |
3239 | "column": 19, | 3239 | "column": 19, |
3240 | "line": 70 | 3240 | "line": 71 |
3241 | } | 3241 | } |
3242 | }, | 3242 | }, |
3243 | { | 3243 | { |
3244 | "defaultMessage": "!!!Appearance", | 3244 | "defaultMessage": "!!!Appearance", |
3245 | "end": { | 3245 | "end": { |
3246 | "column": 3, | 3246 | "column": 3, |
3247 | "line": 77 | 3247 | "line": 78 |
3248 | }, | 3248 | }, |
3249 | "file": "src/components/settings/settings/EditSettingsForm.js", | 3249 | "file": "src/components/settings/settings/EditSettingsForm.js", |
3250 | "id": "settings.app.headlineAppearance", | 3250 | "id": "settings.app.headlineAppearance", |
3251 | "start": { | 3251 | "start": { |
3252 | "column": 22, | 3252 | "column": 22, |
3253 | "line": 74 | 3253 | "line": 75 |
3254 | } | 3254 | } |
3255 | }, | 3255 | }, |
3256 | { | 3256 | { |
3257 | "defaultMessage": "!!!Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", | 3257 | "defaultMessage": "!!!Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", |
3258 | "end": { | 3258 | "end": { |
3259 | "column": 3, | 3259 | "column": 3, |
3260 | "line": 81 | 3260 | "line": 82 |
3261 | }, | 3261 | }, |
3262 | "file": "src/components/settings/settings/EditSettingsForm.js", | 3262 | "file": "src/components/settings/settings/EditSettingsForm.js", |
3263 | "id": "settings.app.universalDarkModeInfo", | 3263 | "id": "settings.app.universalDarkModeInfo", |
3264 | "start": { | 3264 | "start": { |
3265 | "column": 25, | 3265 | "column": 25, |
3266 | "line": 78 | 3266 | "line": 79 |
3267 | } | 3267 | } |
3268 | }, | 3268 | }, |
3269 | { | 3269 | { |
3270 | "defaultMessage": "!!!Write your accent color in a CSS-compatible format. (Default: #7367f0)", | 3270 | "defaultMessage": "!!!Write your accent color in a CSS-compatible format. (Default: #7367f0)", |
3271 | "end": { | 3271 | "end": { |
3272 | "column": 3, | 3272 | "column": 3, |
3273 | "line": 85 | 3273 | "line": 86 |
3274 | }, | 3274 | }, |
3275 | "file": "src/components/settings/settings/EditSettingsForm.js", | 3275 | "file": "src/components/settings/settings/EditSettingsForm.js", |
3276 | "id": "settings.app.accentColorInfo", | 3276 | "id": "settings.app.accentColorInfo", |
3277 | "start": { | 3277 | "start": { |
3278 | "column": 19, | 3278 | "column": 19, |
3279 | "line": 82 | 3279 | "line": 83 |
3280 | } | 3280 | } |
3281 | }, | 3281 | }, |
3282 | { | 3282 | { |
3283 | "defaultMessage": "!!!Advanced", | 3283 | "defaultMessage": "!!!Advanced", |
3284 | "end": { | 3284 | "end": { |
3285 | "column": 3, | 3285 | "column": 3, |
3286 | "line": 89 | 3286 | "line": 90 |
3287 | }, | 3287 | }, |
3288 | "file": "src/components/settings/settings/EditSettingsForm.js", | 3288 | "file": "src/components/settings/settings/EditSettingsForm.js", |
3289 | "id": "settings.app.headlineAdvanced", | 3289 | "id": "settings.app.headlineAdvanced", |
3290 | "start": { | 3290 | "start": { |
3291 | "column": 20, | 3291 | "column": 20, |
3292 | "line": 86 | 3292 | "line": 87 |
3293 | } | 3293 | } |
3294 | }, | 3294 | }, |
3295 | { | 3295 | { |
3296 | "defaultMessage": "!!!Help us to translate Ferdi into your language.", | 3296 | "defaultMessage": "!!!Help us to translate Ferdi into your language.", |
3297 | "end": { | 3297 | "end": { |
3298 | "column": 3, | 3298 | "column": 3, |
3299 | "line": 93 | 3299 | "line": 94 |
3300 | }, | 3300 | }, |
3301 | "file": "src/components/settings/settings/EditSettingsForm.js", | 3301 | "file": "src/components/settings/settings/EditSettingsForm.js", |
3302 | "id": "settings.app.translationHelp", | 3302 | "id": "settings.app.translationHelp", |
3303 | "start": { | 3303 | "start": { |
3304 | "column": 19, | 3304 | "column": 19, |
3305 | "line": 90 | 3305 | "line": 91 |
3306 | } | 3306 | } |
3307 | }, | 3307 | }, |
3308 | { | 3308 | { |
3309 | "defaultMessage": "!!!Ferdi uses your Mac's build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac's System Preferences.", | 3309 | "defaultMessage": "!!!Ferdi uses your Mac's build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac's System Preferences.", |
3310 | "end": { | 3310 | "end": { |
3311 | "column": 3, | 3311 | "column": 3, |
3312 | "line": 97 | 3312 | "line": 98 |
3313 | }, | 3313 | }, |
3314 | "file": "src/components/settings/settings/EditSettingsForm.js", | 3314 | "file": "src/components/settings/settings/EditSettingsForm.js", |
3315 | "id": "settings.app.spellCheckerLanguageInfo", | 3315 | "id": "settings.app.spellCheckerLanguageInfo", |
3316 | "start": { | 3316 | "start": { |
3317 | "column": 28, | 3317 | "column": 28, |
3318 | "line": 94 | 3318 | "line": 95 |
3319 | } | 3319 | } |
3320 | }, | 3320 | }, |
3321 | { | 3321 | { |
3322 | "defaultMessage": "!!!Cache", | 3322 | "defaultMessage": "!!!Cache", |
3323 | "end": { | 3323 | "end": { |
3324 | "column": 3, | 3324 | "column": 3, |
3325 | "line": 101 | 3325 | "line": 102 |
3326 | }, | 3326 | }, |
3327 | "file": "src/components/settings/settings/EditSettingsForm.js", | 3327 | "file": "src/components/settings/settings/EditSettingsForm.js", |
3328 | "id": "settings.app.subheadlineCache", | 3328 | "id": "settings.app.subheadlineCache", |
3329 | "start": { | 3329 | "start": { |
3330 | "column": 20, | 3330 | "column": 20, |
3331 | "line": 98 | 3331 | "line": 99 |
3332 | } | 3332 | } |
3333 | }, | 3333 | }, |
3334 | { | 3334 | { |
3335 | "defaultMessage": "!!!Ferdi cache is currently using {size} of disk space.", | 3335 | "defaultMessage": "!!!Ferdi cache is currently using {size} of disk space.", |
3336 | "end": { | 3336 | "end": { |
3337 | "column": 3, | 3337 | "column": 3, |
3338 | "line": 105 | 3338 | "line": 106 |
3339 | }, | 3339 | }, |
3340 | "file": "src/components/settings/settings/EditSettingsForm.js", | 3340 | "file": "src/components/settings/settings/EditSettingsForm.js", |
3341 | "id": "settings.app.cacheInfo", | 3341 | "id": "settings.app.cacheInfo", |
3342 | "start": { | 3342 | "start": { |
3343 | "column": 13, | 3343 | "column": 13, |
3344 | "line": 102 | 3344 | "line": 103 |
3345 | } | 3345 | } |
3346 | }, | 3346 | }, |
3347 | { | 3347 | { |
3348 | "defaultMessage": "!!!Couldn't clear all cache", | 3348 | "defaultMessage": "!!!Couldn't clear all cache", |
3349 | "end": { | 3349 | "end": { |
3350 | "column": 3, | 3350 | "column": 3, |
3351 | "line": 109 | 3351 | "line": 110 |
3352 | }, | 3352 | }, |
3353 | "file": "src/components/settings/settings/EditSettingsForm.js", | 3353 | "file": "src/components/settings/settings/EditSettingsForm.js", |
3354 | "id": "settings.app.cacheNotCleared", | 3354 | "id": "settings.app.cacheNotCleared", |
3355 | "start": { | 3355 | "start": { |
3356 | "column": 19, | 3356 | "column": 19, |
3357 | "line": 106 | 3357 | "line": 107 |
3358 | } | 3358 | } |
3359 | }, | 3359 | }, |
3360 | { | 3360 | { |
3361 | "defaultMessage": "!!!Clear cache", | 3361 | "defaultMessage": "!!!Clear cache", |
3362 | "end": { | 3362 | "end": { |
3363 | "column": 3, | 3363 | "column": 3, |
3364 | "line": 113 | 3364 | "line": 114 |
3365 | }, | 3365 | }, |
3366 | "file": "src/components/settings/settings/EditSettingsForm.js", | 3366 | "file": "src/components/settings/settings/EditSettingsForm.js", |
3367 | "id": "settings.app.buttonClearAllCache", | 3367 | "id": "settings.app.buttonClearAllCache", |
3368 | "start": { | 3368 | "start": { |
3369 | "column": 23, | 3369 | "column": 23, |
3370 | "line": 110 | 3370 | "line": 111 |
3371 | } | 3371 | } |
3372 | }, | 3372 | }, |
3373 | { | 3373 | { |
3374 | "defaultMessage": "!!!Check for updates", | 3374 | "defaultMessage": "!!!Check for updates", |
3375 | "end": { | 3375 | "end": { |
3376 | "column": 3, | 3376 | "column": 3, |
3377 | "line": 117 | 3377 | "line": 118 |
3378 | }, | 3378 | }, |
3379 | "file": "src/components/settings/settings/EditSettingsForm.js", | 3379 | "file": "src/components/settings/settings/EditSettingsForm.js", |
3380 | "id": "settings.app.buttonSearchForUpdate", | 3380 | "id": "settings.app.buttonSearchForUpdate", |
3381 | "start": { | 3381 | "start": { |
3382 | "column": 25, | 3382 | "column": 25, |
3383 | "line": 114 | 3383 | "line": 115 |
3384 | } | 3384 | } |
3385 | }, | 3385 | }, |
3386 | { | 3386 | { |
3387 | "defaultMessage": "!!!Restart & install update", | 3387 | "defaultMessage": "!!!Restart & install update", |
3388 | "end": { | 3388 | "end": { |
3389 | "column": 3, | 3389 | "column": 3, |
3390 | "line": 121 | 3390 | "line": 122 |
3391 | }, | 3391 | }, |
3392 | "file": "src/components/settings/settings/EditSettingsForm.js", | 3392 | "file": "src/components/settings/settings/EditSettingsForm.js", |
3393 | "id": "settings.app.buttonInstallUpdate", | 3393 | "id": "settings.app.buttonInstallUpdate", |
3394 | "start": { | 3394 | "start": { |
3395 | "column": 23, | 3395 | "column": 23, |
3396 | "line": 118 | 3396 | "line": 119 |
3397 | } | 3397 | } |
3398 | }, | 3398 | }, |
3399 | { | 3399 | { |
3400 | "defaultMessage": "!!!Is searching for update", | 3400 | "defaultMessage": "!!!Is searching for update", |
3401 | "end": { | 3401 | "end": { |
3402 | "column": 3, | 3402 | "column": 3, |
3403 | "line": 125 | 3403 | "line": 126 |
3404 | }, | 3404 | }, |
3405 | "file": "src/components/settings/settings/EditSettingsForm.js", | 3405 | "file": "src/components/settings/settings/EditSettingsForm.js", |
3406 | "id": "settings.app.updateStatusSearching", | 3406 | "id": "settings.app.updateStatusSearching", |
3407 | "start": { | 3407 | "start": { |
3408 | "column": 25, | 3408 | "column": 25, |
3409 | "line": 122 | 3409 | "line": 123 |
3410 | } | 3410 | } |
3411 | }, | 3411 | }, |
3412 | { | 3412 | { |
3413 | "defaultMessage": "!!!Update available, downloading...", | 3413 | "defaultMessage": "!!!Update available, downloading...", |
3414 | "end": { | 3414 | "end": { |
3415 | "column": 3, | 3415 | "column": 3, |
3416 | "line": 129 | 3416 | "line": 130 |
3417 | }, | 3417 | }, |
3418 | "file": "src/components/settings/settings/EditSettingsForm.js", | 3418 | "file": "src/components/settings/settings/EditSettingsForm.js", |
3419 | "id": "settings.app.updateStatusAvailable", | 3419 | "id": "settings.app.updateStatusAvailable", |
3420 | "start": { | 3420 | "start": { |
3421 | "column": 25, | 3421 | "column": 25, |
3422 | "line": 126 | 3422 | "line": 127 |
3423 | } | 3423 | } |
3424 | }, | 3424 | }, |
3425 | { | 3425 | { |
3426 | "defaultMessage": "!!!You are using the latest version of Ferdi", | 3426 | "defaultMessage": "!!!You are using the latest version of Ferdi", |
3427 | "end": { | 3427 | "end": { |
3428 | "column": 3, | 3428 | "column": 3, |
3429 | "line": 133 | 3429 | "line": 134 |
3430 | }, | 3430 | }, |
3431 | "file": "src/components/settings/settings/EditSettingsForm.js", | 3431 | "file": "src/components/settings/settings/EditSettingsForm.js", |
3432 | "id": "settings.app.updateStatusUpToDate", | 3432 | "id": "settings.app.updateStatusUpToDate", |
3433 | "start": { | 3433 | "start": { |
3434 | "column": 24, | 3434 | "column": 24, |
3435 | "line": 130 | 3435 | "line": 131 |
3436 | } | 3436 | } |
3437 | }, | 3437 | }, |
3438 | { | 3438 | { |
3439 | "defaultMessage": "!!!Current version:", | 3439 | "defaultMessage": "!!!Current version:", |
3440 | "end": { | 3440 | "end": { |
3441 | "column": 3, | 3441 | "column": 3, |
3442 | "line": 137 | 3442 | "line": 138 |
3443 | }, | 3443 | }, |
3444 | "file": "src/components/settings/settings/EditSettingsForm.js", | 3444 | "file": "src/components/settings/settings/EditSettingsForm.js", |
3445 | "id": "settings.app.currentVersion", | 3445 | "id": "settings.app.currentVersion", |
3446 | "start": { | 3446 | "start": { |
3447 | "column": 18, | 3447 | "column": 18, |
3448 | "line": 134 | 3448 | "line": 135 |
3449 | } | 3449 | } |
3450 | }, | 3450 | }, |
3451 | { | 3451 | { |
3452 | "defaultMessage": "!!!Changes require restart", | 3452 | "defaultMessage": "!!!Changes require restart", |
3453 | "end": { | 3453 | "end": { |
3454 | "column": 3, | 3454 | "column": 3, |
3455 | "line": 141 | 3455 | "line": 142 |
3456 | }, | 3456 | }, |
3457 | "file": "src/components/settings/settings/EditSettingsForm.js", | 3457 | "file": "src/components/settings/settings/EditSettingsForm.js", |
3458 | "id": "settings.app.restartRequired", | 3458 | "id": "settings.app.restartRequired", |
3459 | "start": { | 3459 | "start": { |
3460 | "column": 29, | 3460 | "column": 29, |
3461 | "line": 138 | 3461 | "line": 139 |
3462 | } | 3462 | } |
3463 | }, | 3463 | }, |
3464 | { | 3464 | { |
3465 | "defaultMessage": "!!!Official translations are English & German. All other languages are community based translations.", | 3465 | "defaultMessage": "!!!Official translations are English & German. All other languages are community based translations.", |
3466 | "end": { | 3466 | "end": { |
3467 | "column": 3, | 3467 | "column": 3, |
3468 | "line": 145 | 3468 | "line": 146 |
3469 | }, | 3469 | }, |
3470 | "file": "src/components/settings/settings/EditSettingsForm.js", | 3470 | "file": "src/components/settings/settings/EditSettingsForm.js", |
3471 | "id": "settings.app.languageDisclaimer", | 3471 | "id": "settings.app.languageDisclaimer", |
3472 | "start": { | 3472 | "start": { |
3473 | "column": 22, | 3473 | "column": 22, |
3474 | "line": 142 | 3474 | "line": 143 |
3475 | } | 3475 | } |
3476 | } | 3476 | } |
3477 | ], | 3477 | ], |
@@ -5317,6 +5317,63 @@ | |||
5317 | { | 5317 | { |
5318 | "descriptors": [ | 5318 | "descriptors": [ |
5319 | { | 5319 | { |
5320 | "defaultMessage": "!!!Nightly Builds", | ||
5321 | "end": { | ||
5322 | "column": 3, | ||
5323 | "line": 17 | ||
5324 | }, | ||
5325 | "file": "src/features/nightlyBuilds/Component.js", | ||
5326 | "id": "feature.nightlyBuilds.title", | ||
5327 | "start": { | ||
5328 | "column": 9, | ||
5329 | "line": 14 | ||
5330 | } | ||
5331 | }, | ||
5332 | { | ||
5333 | "defaultMessage": "!!!Nightly builds are highly experimental versions of Ferdi that may contain unpolished or uncompleted features. These nightly builds are mainly used by developers to test their newly developed features and how they will perform in the final build. If you don't know what you are doing, we suggest not activating nightly builds.", | ||
5334 | "end": { | ||
5335 | "column": 3, | ||
5336 | "line": 21 | ||
5337 | }, | ||
5338 | "file": "src/features/nightlyBuilds/Component.js", | ||
5339 | "id": "feature.nightlyBuilds.info", | ||
5340 | "start": { | ||
5341 | "column": 8, | ||
5342 | "line": 18 | ||
5343 | } | ||
5344 | }, | ||
5345 | { | ||
5346 | "defaultMessage": "!!!Activate", | ||
5347 | "end": { | ||
5348 | "column": 3, | ||
5349 | "line": 25 | ||
5350 | }, | ||
5351 | "file": "src/features/nightlyBuilds/Component.js", | ||
5352 | "id": "feature.nightlyBuilds.activate", | ||
5353 | "start": { | ||
5354 | "column": 12, | ||
5355 | "line": 22 | ||
5356 | } | ||
5357 | }, | ||
5358 | { | ||
5359 | "defaultMessage": "!!!Cancel", | ||
5360 | "end": { | ||
5361 | "column": 3, | ||
5362 | "line": 29 | ||
5363 | }, | ||
5364 | "file": "src/features/nightlyBuilds/Component.js", | ||
5365 | "id": "feature.nightlyBuilds.cancel", | ||
5366 | "start": { | ||
5367 | "column": 10, | ||
5368 | "line": 26 | ||
5369 | } | ||
5370 | } | ||
5371 | ], | ||
5372 | "path": "src/features/nightlyBuilds/Component.json" | ||
5373 | }, | ||
5374 | { | ||
5375 | "descriptors": [ | ||
5376 | { | ||
5320 | "defaultMessage": "!!!per month", | 5377 | "defaultMessage": "!!!per month", |
5321 | "end": { | 5378 | "end": { |
5322 | "column": 3, | 5379 | "column": 3, |
@@ -6302,7 +6359,7 @@ | |||
6302 | } | 6359 | } |
6303 | }, | 6360 | }, |
6304 | { | 6361 | { |
6305 | "defaultMessage": "!!!You haven't added any services yet.", | 6362 | "defaultMessage": "!!!Start by adding a service.", |
6306 | "end": { | 6363 | "end": { |
6307 | "column": 3, | 6364 | "column": 3, |
6308 | "line": 52 | 6365 | "line": 52 |
@@ -6486,7 +6543,7 @@ | |||
6486 | } | 6543 | } |
6487 | }, | 6544 | }, |
6488 | { | 6545 | { |
6489 | "defaultMessage": "!!!You haven't added any workspaces yet.", | 6546 | "defaultMessage": "!!!You haven't created any workspaces yet.", |
6490 | "end": { | 6547 | "end": { |
6491 | "column": 3, | 6548 | "column": 3, |
6492 | "line": 27 | 6549 | "line": 27 |
diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index fd5c0755b..553c30489 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json | |||
@@ -19,6 +19,10 @@ | |||
19 | "feature.delayApp.trial.headline": "Get the free Ferdi Professional 14 day trial and skip the line", | 19 | "feature.delayApp.trial.headline": "Get the free Ferdi Professional 14 day trial and skip the line", |
20 | "feature.delayApp.upgrade.action": "Get a Ferdi Supporter License", | 20 | "feature.delayApp.upgrade.action": "Get a Ferdi Supporter License", |
21 | "feature.delayApp.upgrade.actionShort": "Upgrade account", | 21 | "feature.delayApp.upgrade.actionShort": "Upgrade account", |
22 | "feature.nightlyBuilds.activate": "Activate", | ||
23 | "feature.nightlyBuilds.cancel": "Cancel", | ||
24 | "feature.nightlyBuilds.info": "Nightly builds are highly experimental versions of Ferdi that may contain unpolished or uncompleted features. These nightly builds are mainly used by developers to test their newly developed features and how they will perform in the final build. If you don't know what you are doing, we suggest not activating nightly builds.", | ||
25 | "feature.nightlyBuilds.title": "Nightly Builds", | ||
22 | "feature.planSelection.cta.ctaDowngradeFree": "Downgrade to Free", | 26 | "feature.planSelection.cta.ctaDowngradeFree": "Downgrade to Free", |
23 | "feature.planSelection.cta.stayOnFree": "Stay on Free", | 27 | "feature.planSelection.cta.stayOnFree": "Stay on Free", |
24 | "feature.planSelection.cta.trial": "Start my free 14-days Trial", | 28 | "feature.planSelection.cta.trial": "Start my free 14-days Trial", |
@@ -363,7 +367,7 @@ | |||
363 | "settings.recipes.headline": "Available services", | 367 | "settings.recipes.headline": "Available services", |
364 | "settings.recipes.missingService": "Missing a service?", | 368 | "settings.recipes.missingService": "Missing a service?", |
365 | "settings.recipes.mostPopular": "Most popular", | 369 | "settings.recipes.mostPopular": "Most popular", |
366 | "settings.recipes.nothingFound": "Sorry, but no service matched your search term.", | 370 | "settings.recipes.nothingFound": "Sorry, but no service matched your search term - but you can still probably add it using the \"Custom Website\" option:", |
367 | "settings.recipes.servicesSuccessfulAddedInfo": "Service successfully added", | 371 | "settings.recipes.servicesSuccessfulAddedInfo": "Service successfully added", |
368 | "settings.searchService": "Search service", | 372 | "settings.searchService": "Search service", |
369 | "settings.service.error.goBack": "Back to services", | 373 | "settings.service.error.goBack": "Back to services", |
@@ -419,7 +423,7 @@ | |||
419 | "settings.services.deletedInfo": "Service has been deleted", | 423 | "settings.services.deletedInfo": "Service has been deleted", |
420 | "settings.services.discoverServices": "Discover services", | 424 | "settings.services.discoverServices": "Discover services", |
421 | "settings.services.headline": "Your services", | 425 | "settings.services.headline": "Your services", |
422 | "settings.services.noServicesAdded": "You haven't added any services yet.", | 426 | "settings.services.noServicesAdded": "Start by adding a service.", |
423 | "settings.services.servicesRequestFailed": "Could not load your services", | 427 | "settings.services.servicesRequestFailed": "Could not load your services", |
424 | "settings.services.tooltip.isDisabled": "Service is disabled", | 428 | "settings.services.tooltip.isDisabled": "Service is disabled", |
425 | "settings.services.tooltip.isMuted": "All sounds are muted", | 429 | "settings.services.tooltip.isMuted": "All sounds are muted", |
@@ -458,7 +462,7 @@ | |||
458 | "settings.workspace.form.yourWorkspaces": "Your workspaces", | 462 | "settings.workspace.form.yourWorkspaces": "Your workspaces", |
459 | "settings.workspaces.deletedInfo": "Workspace has been deleted", | 463 | "settings.workspaces.deletedInfo": "Workspace has been deleted", |
460 | "settings.workspaces.headline": "Your workspaces", | 464 | "settings.workspaces.headline": "Your workspaces", |
461 | "settings.workspaces.noWorkspacesAdded": "You haven't added any workspaces yet.", | 465 | "settings.workspaces.noWorkspacesAdded": "You haven't created any workspaces yet.", |
462 | "settings.workspaces.tryReloadWorkspaces": "Try again", | 466 | "settings.workspaces.tryReloadWorkspaces": "Try again", |
463 | "settings.workspaces.updatedInfo": "Your changes have been saved", | 467 | "settings.workspaces.updatedInfo": "Your changes have been saved", |
464 | "settings.workspaces.workspaceFeatureHeadline": "Less is More: Introducing Ferdi Workspaces", | 468 | "settings.workspaces.workspaceFeatureHeadline": "Less is More: Introducing Ferdi Workspaces", |
diff --git a/src/i18n/locales/whitelist_en-US.json b/src/i18n/locales/whitelist_en-US.json index fe51488c7..32960f8ce 100644 --- a/src/i18n/locales/whitelist_en-US.json +++ b/src/i18n/locales/whitelist_en-US.json | |||
@@ -1 +1,2 @@ | |||
1 | [] | 1 | [ |
2 | ] \ No newline at end of file | ||
diff --git a/src/i18n/messages/src/components/layout/AppLayout.json b/src/i18n/messages/src/components/layout/AppLayout.json index 5a8e082f2..554758f82 100644 --- a/src/i18n/messages/src/components/layout/AppLayout.json +++ b/src/i18n/messages/src/components/layout/AppLayout.json | |||
@@ -4,11 +4,11 @@ | |||
4 | "defaultMessage": "!!!Your services have been updated.", | 4 | "defaultMessage": "!!!Your services have been updated.", |
5 | "file": "src/components/layout/AppLayout.js", | 5 | "file": "src/components/layout/AppLayout.js", |
6 | "start": { | 6 | "start": { |
7 | "line": 31, | 7 | "line": 32, |
8 | "column": 19 | 8 | "column": 19 |
9 | }, | 9 | }, |
10 | "end": { | 10 | "end": { |
11 | "line": 34, | 11 | "line": 35, |
12 | "column": 3 | 12 | "column": 3 |
13 | } | 13 | } |
14 | }, | 14 | }, |
@@ -17,11 +17,11 @@ | |||
17 | "defaultMessage": "!!!Reload services", | 17 | "defaultMessage": "!!!Reload services", |
18 | "file": "src/components/layout/AppLayout.js", | 18 | "file": "src/components/layout/AppLayout.js", |
19 | "start": { | 19 | "start": { |
20 | "line": 35, | 20 | "line": 36, |
21 | "column": 24 | 21 | "column": 24 |
22 | }, | 22 | }, |
23 | "end": { | 23 | "end": { |
24 | "line": 38, | 24 | "line": 39, |
25 | "column": 3 | 25 | "column": 3 |
26 | } | 26 | } |
27 | }, | 27 | }, |
@@ -30,11 +30,11 @@ | |||
30 | "defaultMessage": "!!!Could not load services and user information", | 30 | "defaultMessage": "!!!Could not load services and user information", |
31 | "file": "src/components/layout/AppLayout.js", | 31 | "file": "src/components/layout/AppLayout.js", |
32 | "start": { | 32 | "start": { |
33 | "line": 39, | 33 | "line": 40, |
34 | "column": 26 | 34 | "column": 26 |
35 | }, | 35 | }, |
36 | "end": { | 36 | "end": { |
37 | "line": 42, | 37 | "line": 43, |
38 | "column": 3 | 38 | "column": 3 |
39 | } | 39 | } |
40 | }, | 40 | }, |
@@ -43,11 +43,11 @@ | |||
43 | "defaultMessage": "!!!There were errors while trying to perform an authenticated request. Please try logging out and back in if this error persists.", | 43 | "defaultMessage": "!!!There were errors while trying to perform an authenticated request. Please try logging out and back in if this error persists.", |
44 | "file": "src/components/layout/AppLayout.js", | 44 | "file": "src/components/layout/AppLayout.js", |
45 | "start": { | 45 | "start": { |
46 | "line": 43, | 46 | "line": 44, |
47 | "column": 21 | 47 | "column": 21 |
48 | }, | 48 | }, |
49 | "end": { | 49 | "end": { |
50 | "line": 46, | 50 | "line": 47, |
51 | "column": 3 | 51 | "column": 3 |
52 | } | 52 | } |
53 | } | 53 | } |
diff --git a/src/i18n/messages/src/components/settings/recipes/RecipesDashboard.json b/src/i18n/messages/src/components/settings/recipes/RecipesDashboard.json index 1124f4d6a..e69bc427b 100644 --- a/src/i18n/messages/src/components/settings/recipes/RecipesDashboard.json +++ b/src/i18n/messages/src/components/settings/recipes/RecipesDashboard.json | |||
@@ -4,11 +4,11 @@ | |||
4 | "defaultMessage": "!!!Available Services", | 4 | "defaultMessage": "!!!Available Services", |
5 | "file": "src/components/settings/recipes/RecipesDashboard.js", | 5 | "file": "src/components/settings/recipes/RecipesDashboard.js", |
6 | "start": { | 6 | "start": { |
7 | "line": 20, | 7 | "line": 21, |
8 | "column": 12 | 8 | "column": 12 |
9 | }, | 9 | }, |
10 | "end": { | 10 | "end": { |
11 | "line": 23, | 11 | "line": 24, |
12 | "column": 3 | 12 | "column": 3 |
13 | } | 13 | } |
14 | }, | 14 | }, |
@@ -17,11 +17,11 @@ | |||
17 | "defaultMessage": "!!!Search service", | 17 | "defaultMessage": "!!!Search service", |
18 | "file": "src/components/settings/recipes/RecipesDashboard.js", | 18 | "file": "src/components/settings/recipes/RecipesDashboard.js", |
19 | "start": { | 19 | "start": { |
20 | "line": 24, | 20 | "line": 25, |
21 | "column": 17 | 21 | "column": 17 |
22 | }, | 22 | }, |
23 | "end": { | 23 | "end": { |
24 | "line": 27, | 24 | "line": 28, |
25 | "column": 3 | 25 | "column": 3 |
26 | } | 26 | } |
27 | }, | 27 | }, |
@@ -30,11 +30,11 @@ | |||
30 | "defaultMessage": "!!!Most popular", | 30 | "defaultMessage": "!!!Most popular", |
31 | "file": "src/components/settings/recipes/RecipesDashboard.js", | 31 | "file": "src/components/settings/recipes/RecipesDashboard.js", |
32 | "start": { | 32 | "start": { |
33 | "line": 28, | 33 | "line": 29, |
34 | "column": 22 | 34 | "column": 22 |
35 | }, | 35 | }, |
36 | "end": { | 36 | "end": { |
37 | "line": 31, | 37 | "line": 32, |
38 | "column": 3 | 38 | "column": 3 |
39 | } | 39 | } |
40 | }, | 40 | }, |
@@ -43,11 +43,11 @@ | |||
43 | "defaultMessage": "!!!All services", | 43 | "defaultMessage": "!!!All services", |
44 | "file": "src/components/settings/recipes/RecipesDashboard.js", | 44 | "file": "src/components/settings/recipes/RecipesDashboard.js", |
45 | "start": { | 45 | "start": { |
46 | "line": 32, | 46 | "line": 33, |
47 | "column": 14 | 47 | "column": 14 |
48 | }, | 48 | }, |
49 | "end": { | 49 | "end": { |
50 | "line": 35, | 50 | "line": 36, |
51 | "column": 3 | 51 | "column": 3 |
52 | } | 52 | } |
53 | }, | 53 | }, |
@@ -56,24 +56,24 @@ | |||
56 | "defaultMessage": "!!!Custom Services", | 56 | "defaultMessage": "!!!Custom Services", |
57 | "file": "src/components/settings/recipes/RecipesDashboard.js", | 57 | "file": "src/components/settings/recipes/RecipesDashboard.js", |
58 | "start": { | 58 | "start": { |
59 | "line": 36, | 59 | "line": 37, |
60 | "column": 17 | 60 | "column": 17 |
61 | }, | 61 | }, |
62 | "end": { | 62 | "end": { |
63 | "line": 39, | 63 | "line": 40, |
64 | "column": 3 | 64 | "column": 3 |
65 | } | 65 | } |
66 | }, | 66 | }, |
67 | { | 67 | { |
68 | "id": "settings.recipes.nothingFound", | 68 | "id": "settings.recipes.nothingFound", |
69 | "defaultMessage": "!!!Sorry, but no service matched your search term.", | 69 | "defaultMessage": "!!!Sorry, but no service matched your search term - but you can still probably add it using the \"Custom Website\" option:", |
70 | "file": "src/components/settings/recipes/RecipesDashboard.js", | 70 | "file": "src/components/settings/recipes/RecipesDashboard.js", |
71 | "start": { | 71 | "start": { |
72 | "line": 40, | 72 | "line": 41, |
73 | "column": 16 | 73 | "column": 16 |
74 | }, | 74 | }, |
75 | "end": { | 75 | "end": { |
76 | "line": 43, | 76 | "line": 44, |
77 | "column": 3 | 77 | "column": 3 |
78 | } | 78 | } |
79 | }, | 79 | }, |
@@ -82,11 +82,11 @@ | |||
82 | "defaultMessage": "!!!Service successfully added", | 82 | "defaultMessage": "!!!Service successfully added", |
83 | "file": "src/components/settings/recipes/RecipesDashboard.js", | 83 | "file": "src/components/settings/recipes/RecipesDashboard.js", |
84 | "start": { | 84 | "start": { |
85 | "line": 44, | 85 | "line": 45, |
86 | "column": 31 | 86 | "column": 31 |
87 | }, | 87 | }, |
88 | "end": { | 88 | "end": { |
89 | "line": 47, | 89 | "line": 48, |
90 | "column": 3 | 90 | "column": 3 |
91 | } | 91 | } |
92 | }, | 92 | }, |
@@ -95,11 +95,11 @@ | |||
95 | "defaultMessage": "!!!Missing a service?", | 95 | "defaultMessage": "!!!Missing a service?", |
96 | "file": "src/components/settings/recipes/RecipesDashboard.js", | 96 | "file": "src/components/settings/recipes/RecipesDashboard.js", |
97 | "start": { | 97 | "start": { |
98 | "line": 48, | 98 | "line": 49, |
99 | "column": 18 | 99 | "column": 18 |
100 | }, | 100 | }, |
101 | "end": { | 101 | "end": { |
102 | "line": 51, | 102 | "line": 52, |
103 | "column": 3 | 103 | "column": 3 |
104 | } | 104 | } |
105 | }, | 105 | }, |
@@ -108,11 +108,11 @@ | |||
108 | "defaultMessage": "!!!To add a custom service, copy the recipe folder into:", | 108 | "defaultMessage": "!!!To add a custom service, copy the recipe folder into:", |
109 | "file": "src/components/settings/recipes/RecipesDashboard.js", | 109 | "file": "src/components/settings/recipes/RecipesDashboard.js", |
110 | "start": { | 110 | "start": { |
111 | "line": 52, | 111 | "line": 53, |
112 | "column": 21 | 112 | "column": 21 |
113 | }, | 113 | }, |
114 | "end": { | 114 | "end": { |
115 | "line": 55, | 115 | "line": 56, |
116 | "column": 3 | 116 | "column": 3 |
117 | } | 117 | } |
118 | }, | 118 | }, |
@@ -121,11 +121,11 @@ | |||
121 | "defaultMessage": "!!!Open directory", | 121 | "defaultMessage": "!!!Open directory", |
122 | "file": "src/components/settings/recipes/RecipesDashboard.js", | 122 | "file": "src/components/settings/recipes/RecipesDashboard.js", |
123 | "start": { | 123 | "start": { |
124 | "line": 56, | 124 | "line": 57, |
125 | "column": 14 | 125 | "column": 14 |
126 | }, | 126 | }, |
127 | "end": { | 127 | "end": { |
128 | "line": 59, | 128 | "line": 60, |
129 | "column": 3 | 129 | "column": 3 |
130 | } | 130 | } |
131 | }, | 131 | }, |
@@ -134,11 +134,11 @@ | |||
134 | "defaultMessage": "!!!Developer Documentation", | 134 | "defaultMessage": "!!!Developer Documentation", |
135 | "file": "src/components/settings/recipes/RecipesDashboard.js", | 135 | "file": "src/components/settings/recipes/RecipesDashboard.js", |
136 | "start": { | 136 | "start": { |
137 | "line": 60, | 137 | "line": 61, |
138 | "column": 15 | 138 | "column": 15 |
139 | }, | 139 | }, |
140 | "end": { | 140 | "end": { |
141 | "line": 63, | 141 | "line": 64, |
142 | "column": 3 | 142 | "column": 3 |
143 | } | 143 | } |
144 | }, | 144 | }, |
@@ -147,11 +147,11 @@ | |||
147 | "defaultMessage": "!!!Custom 3rd Party Recipes", | 147 | "defaultMessage": "!!!Custom 3rd Party Recipes", |
148 | "file": "src/components/settings/recipes/RecipesDashboard.js", | 148 | "file": "src/components/settings/recipes/RecipesDashboard.js", |
149 | "start": { | 149 | "start": { |
150 | "line": 64, | 150 | "line": 65, |
151 | "column": 25 | 151 | "column": 25 |
152 | }, | 152 | }, |
153 | "end": { | 153 | "end": { |
154 | "line": 67, | 154 | "line": 68, |
155 | "column": 3 | 155 | "column": 3 |
156 | } | 156 | } |
157 | }, | 157 | }, |
@@ -160,11 +160,11 @@ | |||
160 | "defaultMessage": "!!!Community 3rd Party Recipes", | 160 | "defaultMessage": "!!!Community 3rd Party Recipes", |
161 | "file": "src/components/settings/recipes/RecipesDashboard.js", | 161 | "file": "src/components/settings/recipes/RecipesDashboard.js", |
162 | "start": { | 162 | "start": { |
163 | "line": 68, | 163 | "line": 69, |
164 | "column": 28 | 164 | "column": 28 |
165 | }, | 165 | }, |
166 | "end": { | 166 | "end": { |
167 | "line": 71, | 167 | "line": 72, |
168 | "column": 3 | 168 | "column": 3 |
169 | } | 169 | } |
170 | }, | 170 | }, |
@@ -173,11 +173,11 @@ | |||
173 | "defaultMessage": "!!!Your Development Service Recipes", | 173 | "defaultMessage": "!!!Your Development Service Recipes", |
174 | "file": "src/components/settings/recipes/RecipesDashboard.js", | 174 | "file": "src/components/settings/recipes/RecipesDashboard.js", |
175 | "start": { | 175 | "start": { |
176 | "line": 72, | 176 | "line": 73, |
177 | "column": 22 | 177 | "column": 22 |
178 | }, | 178 | }, |
179 | "end": { | 179 | "end": { |
180 | "line": 75, | 180 | "line": 76, |
181 | "column": 3 | 181 | "column": 3 |
182 | } | 182 | } |
183 | } | 183 | } |
diff --git a/src/i18n/messages/src/components/settings/services/ServicesDashboard.json b/src/i18n/messages/src/components/settings/services/ServicesDashboard.json index 140d17a8b..0335c4dd8 100644 --- a/src/i18n/messages/src/components/settings/services/ServicesDashboard.json +++ b/src/i18n/messages/src/components/settings/services/ServicesDashboard.json | |||
@@ -27,7 +27,7 @@ | |||
27 | }, | 27 | }, |
28 | { | 28 | { |
29 | "id": "settings.services.noServicesAdded", | 29 | "id": "settings.services.noServicesAdded", |
30 | "defaultMessage": "!!!You haven't added any services yet.", | 30 | "defaultMessage": "!!!Start by adding a service.", |
31 | "file": "src/components/settings/services/ServicesDashboard.js", | 31 | "file": "src/components/settings/services/ServicesDashboard.js", |
32 | "start": { | 32 | "start": { |
33 | "line": 24, | 33 | "line": 24, |
diff --git a/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json b/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json index 373cd78f9..ccd006117 100644 --- a/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json +++ b/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json | |||
@@ -4,11 +4,11 @@ | |||
4 | "defaultMessage": "!!!Settings", | 4 | "defaultMessage": "!!!Settings", |
5 | "file": "src/components/settings/settings/EditSettingsForm.js", | 5 | "file": "src/components/settings/settings/EditSettingsForm.js", |
6 | "start": { | 6 | "start": { |
7 | "line": 22, | 7 | "line": 23, |
8 | "column": 12 | 8 | "column": 12 |
9 | }, | 9 | }, |
10 | "end": { | 10 | "end": { |
11 | "line": 25, | 11 | "line": 26, |
12 | "column": 3 | 12 | "column": 3 |
13 | } | 13 | } |
14 | }, | 14 | }, |
@@ -17,11 +17,11 @@ | |||
17 | "defaultMessage": "!!!General", | 17 | "defaultMessage": "!!!General", |
18 | "file": "src/components/settings/settings/EditSettingsForm.js", | 18 | "file": "src/components/settings/settings/EditSettingsForm.js", |
19 | "start": { | 19 | "start": { |
20 | "line": 26, | 20 | "line": 27, |
21 | "column": 19 | 21 | "column": 19 |
22 | }, | 22 | }, |
23 | "end": { | 23 | "end": { |
24 | "line": 29, | 24 | "line": 30, |
25 | "column": 3 | 25 | "column": 3 |
26 | } | 26 | } |
27 | }, | 27 | }, |
@@ -30,11 +30,11 @@ | |||
30 | "defaultMessage": "!!!Sending telemetry data allows us to find errors in Ferdi - we will not send any personal information like your message data! Changing this option requires you to restart Ferdi.", | 30 | "defaultMessage": "!!!Sending telemetry data allows us to find errors in Ferdi - we will not send any personal information like your message data! Changing this option requires you to restart Ferdi.", |
31 | "file": "src/components/settings/settings/EditSettingsForm.js", | 31 | "file": "src/components/settings/settings/EditSettingsForm.js", |
32 | "start": { | 32 | "start": { |
33 | "line": 30, | 33 | "line": 31, |
34 | "column": 14 | 34 | "column": 14 |
35 | }, | 35 | }, |
36 | "end": { | 36 | "end": { |
37 | "line": 33, | 37 | "line": 34, |
38 | "column": 3 | 38 | "column": 3 |
39 | } | 39 | } |
40 | }, | 40 | }, |
@@ -43,11 +43,11 @@ | |||
43 | "defaultMessage": "!!!By default, Ferdi will keep all your services open and loaded in the background so they are ready when you want to use them. Service Hibernation will unload your services after a specified amount. This is useful to save RAM or keeping services from slowing down your computer.", | 43 | "defaultMessage": "!!!By default, Ferdi will keep all your services open and loaded in the background so they are ready when you want to use them. Service Hibernation will unload your services after a specified amount. This is useful to save RAM or keeping services from slowing down your computer.", |
44 | "file": "src/components/settings/settings/EditSettingsForm.js", | 44 | "file": "src/components/settings/settings/EditSettingsForm.js", |
45 | "start": { | 45 | "start": { |
46 | "line": 34, | 46 | "line": 35, |
47 | "column": 17 | 47 | "column": 17 |
48 | }, | 48 | }, |
49 | "end": { | 49 | "end": { |
50 | "line": 37, | 50 | "line": 38, |
51 | "column": 3 | 51 | "column": 3 |
52 | } | 52 | } |
53 | }, | 53 | }, |
@@ -56,11 +56,11 @@ | |||
56 | "defaultMessage": "!!!Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable", | 56 | "defaultMessage": "!!!Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable", |
57 | "file": "src/components/settings/settings/EditSettingsForm.js", | 57 | "file": "src/components/settings/settings/EditSettingsForm.js", |
58 | "start": { | 58 | "start": { |
59 | "line": 38, | 59 | "line": 39, |
60 | "column": 22 | 60 | "column": 22 |
61 | }, | 61 | }, |
62 | "end": { | 62 | "end": { |
63 | "line": 41, | 63 | "line": 42, |
64 | "column": 3 | 64 | "column": 3 |
65 | } | 65 | } |
66 | }, | 66 | }, |
@@ -69,11 +69,11 @@ | |||
69 | "defaultMessage": "!!!This server will be used for the \"Franz Todo\" feature. (default: https://app.franztodos.com)", | 69 | "defaultMessage": "!!!This server will be used for the \"Franz Todo\" feature. (default: https://app.franztodos.com)", |
70 | "file": "src/components/settings/settings/EditSettingsForm.js", | 70 | "file": "src/components/settings/settings/EditSettingsForm.js", |
71 | "start": { | 71 | "start": { |
72 | "line": 42, | 72 | "line": 43, |
73 | "column": 18 | 73 | "column": 18 |
74 | }, | 74 | }, |
75 | "end": { | 75 | "end": { |
76 | "line": 45, | 76 | "line": 46, |
77 | "column": 3 | 77 | "column": 3 |
78 | } | 78 | } |
79 | }, | 79 | }, |
@@ -82,11 +82,11 @@ | |||
82 | "defaultMessage": "!!!Password", | 82 | "defaultMessage": "!!!Password", |
83 | "file": "src/components/settings/settings/EditSettingsForm.js", | 83 | "file": "src/components/settings/settings/EditSettingsForm.js", |
84 | "start": { | 84 | "start": { |
85 | "line": 46, | 85 | "line": 47, |
86 | "column": 18 | 86 | "column": 18 |
87 | }, | 87 | }, |
88 | "end": { | 88 | "end": { |
89 | "line": 49, | 89 | "line": 50, |
90 | "column": 3 | 90 | "column": 3 |
91 | } | 91 | } |
92 | }, | 92 | }, |
@@ -95,11 +95,11 @@ | |||
95 | "defaultMessage": "!!!Please make sure to set a password you'll remember.\nIf you loose this password, you will have to reinstall Ferdi.", | 95 | "defaultMessage": "!!!Please make sure to set a password you'll remember.\nIf you loose this password, you will have to reinstall Ferdi.", |
96 | "file": "src/components/settings/settings/EditSettingsForm.js", | 96 | "file": "src/components/settings/settings/EditSettingsForm.js", |
97 | "start": { | 97 | "start": { |
98 | "line": 50, | 98 | "line": 51, |
99 | "column": 22 | 99 | "column": 22 |
100 | }, | 100 | }, |
101 | "end": { | 101 | "end": { |
102 | "line": 53, | 102 | "line": 54, |
103 | "column": 3 | 103 | "column": 3 |
104 | } | 104 | } |
105 | }, | 105 | }, |
@@ -108,11 +108,11 @@ | |||
108 | "defaultMessage": "!!!Password Lock allows you to keep your messages protected.\nUsing Password Lock, you will be prompted to enter your password everytime you start Ferdi or lock Ferdi yourself using the lock symbol in the bottom left corner or the shortcut CMD/CTRL+Shift+L.", | 108 | "defaultMessage": "!!!Password Lock allows you to keep your messages protected.\nUsing Password Lock, you will be prompted to enter your password everytime you start Ferdi or lock Ferdi yourself using the lock symbol in the bottom left corner or the shortcut CMD/CTRL+Shift+L.", |
109 | "file": "src/components/settings/settings/EditSettingsForm.js", | 109 | "file": "src/components/settings/settings/EditSettingsForm.js", |
110 | "start": { | 110 | "start": { |
111 | "line": 54, | 111 | "line": 55, |
112 | "column": 12 | 112 | "column": 12 |
113 | }, | 113 | }, |
114 | "end": { | 114 | "end": { |
115 | "line": 57, | 115 | "line": 58, |
116 | "column": 3 | 116 | "column": 3 |
117 | } | 117 | } |
118 | }, | 118 | }, |
@@ -121,11 +121,11 @@ | |||
121 | "defaultMessage": "!!!Times in 24-Hour-Format. End time can be before start time (e.g. start 17:00, end 09:00) to enable Do-not-Disturb overnight.", | 121 | "defaultMessage": "!!!Times in 24-Hour-Format. End time can be before start time (e.g. start 17:00, end 09:00) to enable Do-not-Disturb overnight.", |
122 | "file": "src/components/settings/settings/EditSettingsForm.js", | 122 | "file": "src/components/settings/settings/EditSettingsForm.js", |
123 | "start": { | 123 | "start": { |
124 | "line": 58, | 124 | "line": 59, |
125 | "column": 24 | 125 | "column": 24 |
126 | }, | 126 | }, |
127 | "end": { | 127 | "end": { |
128 | "line": 61, | 128 | "line": 62, |
129 | "column": 3 | 129 | "column": 3 |
130 | } | 130 | } |
131 | }, | 131 | }, |
@@ -134,11 +134,11 @@ | |||
134 | "defaultMessage": "!!!Scheduled Do-not-Disturb allows you to define a period of time in which you do not want to get Notifications from Ferdi.", | 134 | "defaultMessage": "!!!Scheduled Do-not-Disturb allows you to define a period of time in which you do not want to get Notifications from Ferdi.", |
135 | "file": "src/components/settings/settings/EditSettingsForm.js", | 135 | "file": "src/components/settings/settings/EditSettingsForm.js", |
136 | "start": { | 136 | "start": { |
137 | "line": 62, | 137 | "line": 63, |
138 | "column": 20 | 138 | "column": 20 |
139 | }, | 139 | }, |
140 | "end": { | 140 | "end": { |
141 | "line": 65, | 141 | "line": 66, |
142 | "column": 3 | 142 | "column": 3 |
143 | } | 143 | } |
144 | }, | 144 | }, |
@@ -147,11 +147,11 @@ | |||
147 | "defaultMessage": "!!!Language", | 147 | "defaultMessage": "!!!Language", |
148 | "file": "src/components/settings/settings/EditSettingsForm.js", | 148 | "file": "src/components/settings/settings/EditSettingsForm.js", |
149 | "start": { | 149 | "start": { |
150 | "line": 66, | 150 | "line": 67, |
151 | "column": 20 | 151 | "column": 20 |
152 | }, | 152 | }, |
153 | "end": { | 153 | "end": { |
154 | "line": 69, | 154 | "line": 70, |
155 | "column": 3 | 155 | "column": 3 |
156 | } | 156 | } |
157 | }, | 157 | }, |
@@ -160,11 +160,11 @@ | |||
160 | "defaultMessage": "!!!Updates", | 160 | "defaultMessage": "!!!Updates", |
161 | "file": "src/components/settings/settings/EditSettingsForm.js", | 161 | "file": "src/components/settings/settings/EditSettingsForm.js", |
162 | "start": { | 162 | "start": { |
163 | "line": 70, | 163 | "line": 71, |
164 | "column": 19 | 164 | "column": 19 |
165 | }, | 165 | }, |
166 | "end": { | 166 | "end": { |
167 | "line": 73, | 167 | "line": 74, |
168 | "column": 3 | 168 | "column": 3 |
169 | } | 169 | } |
170 | }, | 170 | }, |
@@ -173,11 +173,11 @@ | |||
173 | "defaultMessage": "!!!Appearance", | 173 | "defaultMessage": "!!!Appearance", |
174 | "file": "src/components/settings/settings/EditSettingsForm.js", | 174 | "file": "src/components/settings/settings/EditSettingsForm.js", |
175 | "start": { | 175 | "start": { |
176 | "line": 74, | 176 | "line": 75, |
177 | "column": 22 | 177 | "column": 22 |
178 | }, | 178 | }, |
179 | "end": { | 179 | "end": { |
180 | "line": 77, | 180 | "line": 78, |
181 | "column": 3 | 181 | "column": 3 |
182 | } | 182 | } |
183 | }, | 183 | }, |
@@ -186,11 +186,11 @@ | |||
186 | "defaultMessage": "!!!Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", | 186 | "defaultMessage": "!!!Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", |
187 | "file": "src/components/settings/settings/EditSettingsForm.js", | 187 | "file": "src/components/settings/settings/EditSettingsForm.js", |
188 | "start": { | 188 | "start": { |
189 | "line": 78, | 189 | "line": 79, |
190 | "column": 25 | 190 | "column": 25 |
191 | }, | 191 | }, |
192 | "end": { | 192 | "end": { |
193 | "line": 81, | 193 | "line": 82, |
194 | "column": 3 | 194 | "column": 3 |
195 | } | 195 | } |
196 | }, | 196 | }, |
@@ -199,11 +199,11 @@ | |||
199 | "defaultMessage": "!!!Write your accent color in a CSS-compatible format. (Default: #7367f0)", | 199 | "defaultMessage": "!!!Write your accent color in a CSS-compatible format. (Default: #7367f0)", |
200 | "file": "src/components/settings/settings/EditSettingsForm.js", | 200 | "file": "src/components/settings/settings/EditSettingsForm.js", |
201 | "start": { | 201 | "start": { |
202 | "line": 82, | 202 | "line": 83, |
203 | "column": 19 | 203 | "column": 19 |
204 | }, | 204 | }, |
205 | "end": { | 205 | "end": { |
206 | "line": 85, | 206 | "line": 86, |
207 | "column": 3 | 207 | "column": 3 |
208 | } | 208 | } |
209 | }, | 209 | }, |
@@ -212,11 +212,11 @@ | |||
212 | "defaultMessage": "!!!Advanced", | 212 | "defaultMessage": "!!!Advanced", |
213 | "file": "src/components/settings/settings/EditSettingsForm.js", | 213 | "file": "src/components/settings/settings/EditSettingsForm.js", |
214 | "start": { | 214 | "start": { |
215 | "line": 86, | 215 | "line": 87, |
216 | "column": 20 | 216 | "column": 20 |
217 | }, | 217 | }, |
218 | "end": { | 218 | "end": { |
219 | "line": 89, | 219 | "line": 90, |
220 | "column": 3 | 220 | "column": 3 |
221 | } | 221 | } |
222 | }, | 222 | }, |
@@ -225,11 +225,11 @@ | |||
225 | "defaultMessage": "!!!Help us to translate Ferdi into your language.", | 225 | "defaultMessage": "!!!Help us to translate Ferdi into your language.", |
226 | "file": "src/components/settings/settings/EditSettingsForm.js", | 226 | "file": "src/components/settings/settings/EditSettingsForm.js", |
227 | "start": { | 227 | "start": { |
228 | "line": 90, | 228 | "line": 91, |
229 | "column": 19 | 229 | "column": 19 |
230 | }, | 230 | }, |
231 | "end": { | 231 | "end": { |
232 | "line": 93, | 232 | "line": 94, |
233 | "column": 3 | 233 | "column": 3 |
234 | } | 234 | } |
235 | }, | 235 | }, |
@@ -238,11 +238,11 @@ | |||
238 | "defaultMessage": "!!!Ferdi uses your Mac's build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac's System Preferences.", | 238 | "defaultMessage": "!!!Ferdi uses your Mac's build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac's System Preferences.", |
239 | "file": "src/components/settings/settings/EditSettingsForm.js", | 239 | "file": "src/components/settings/settings/EditSettingsForm.js", |
240 | "start": { | 240 | "start": { |
241 | "line": 94, | 241 | "line": 95, |
242 | "column": 28 | 242 | "column": 28 |
243 | }, | 243 | }, |
244 | "end": { | 244 | "end": { |
245 | "line": 97, | 245 | "line": 98, |
246 | "column": 3 | 246 | "column": 3 |
247 | } | 247 | } |
248 | }, | 248 | }, |
@@ -251,11 +251,11 @@ | |||
251 | "defaultMessage": "!!!Cache", | 251 | "defaultMessage": "!!!Cache", |
252 | "file": "src/components/settings/settings/EditSettingsForm.js", | 252 | "file": "src/components/settings/settings/EditSettingsForm.js", |
253 | "start": { | 253 | "start": { |
254 | "line": 98, | 254 | "line": 99, |
255 | "column": 20 | 255 | "column": 20 |
256 | }, | 256 | }, |
257 | "end": { | 257 | "end": { |
258 | "line": 101, | 258 | "line": 102, |
259 | "column": 3 | 259 | "column": 3 |
260 | } | 260 | } |
261 | }, | 261 | }, |
@@ -264,11 +264,11 @@ | |||
264 | "defaultMessage": "!!!Ferdi cache is currently using {size} of disk space.", | 264 | "defaultMessage": "!!!Ferdi cache is currently using {size} of disk space.", |
265 | "file": "src/components/settings/settings/EditSettingsForm.js", | 265 | "file": "src/components/settings/settings/EditSettingsForm.js", |
266 | "start": { | 266 | "start": { |
267 | "line": 102, | 267 | "line": 103, |
268 | "column": 13 | 268 | "column": 13 |
269 | }, | 269 | }, |
270 | "end": { | 270 | "end": { |
271 | "line": 105, | 271 | "line": 106, |
272 | "column": 3 | 272 | "column": 3 |
273 | } | 273 | } |
274 | }, | 274 | }, |
@@ -277,11 +277,11 @@ | |||
277 | "defaultMessage": "!!!Couldn't clear all cache", | 277 | "defaultMessage": "!!!Couldn't clear all cache", |
278 | "file": "src/components/settings/settings/EditSettingsForm.js", | 278 | "file": "src/components/settings/settings/EditSettingsForm.js", |
279 | "start": { | 279 | "start": { |
280 | "line": 106, | 280 | "line": 107, |
281 | "column": 19 | 281 | "column": 19 |
282 | }, | 282 | }, |
283 | "end": { | 283 | "end": { |
284 | "line": 109, | 284 | "line": 110, |
285 | "column": 3 | 285 | "column": 3 |
286 | } | 286 | } |
287 | }, | 287 | }, |
@@ -290,11 +290,11 @@ | |||
290 | "defaultMessage": "!!!Clear cache", | 290 | "defaultMessage": "!!!Clear cache", |
291 | "file": "src/components/settings/settings/EditSettingsForm.js", | 291 | "file": "src/components/settings/settings/EditSettingsForm.js", |
292 | "start": { | 292 | "start": { |
293 | "line": 110, | 293 | "line": 111, |
294 | "column": 23 | 294 | "column": 23 |
295 | }, | 295 | }, |
296 | "end": { | 296 | "end": { |
297 | "line": 113, | 297 | "line": 114, |
298 | "column": 3 | 298 | "column": 3 |
299 | } | 299 | } |
300 | }, | 300 | }, |
@@ -303,11 +303,11 @@ | |||
303 | "defaultMessage": "!!!Check for updates", | 303 | "defaultMessage": "!!!Check for updates", |
304 | "file": "src/components/settings/settings/EditSettingsForm.js", | 304 | "file": "src/components/settings/settings/EditSettingsForm.js", |
305 | "start": { | 305 | "start": { |
306 | "line": 114, | 306 | "line": 115, |
307 | "column": 25 | 307 | "column": 25 |
308 | }, | 308 | }, |
309 | "end": { | 309 | "end": { |
310 | "line": 117, | 310 | "line": 118, |
311 | "column": 3 | 311 | "column": 3 |
312 | } | 312 | } |
313 | }, | 313 | }, |
@@ -316,11 +316,11 @@ | |||
316 | "defaultMessage": "!!!Restart & install update", | 316 | "defaultMessage": "!!!Restart & install update", |
317 | "file": "src/components/settings/settings/EditSettingsForm.js", | 317 | "file": "src/components/settings/settings/EditSettingsForm.js", |
318 | "start": { | 318 | "start": { |
319 | "line": 118, | 319 | "line": 119, |
320 | "column": 23 | 320 | "column": 23 |
321 | }, | 321 | }, |
322 | "end": { | 322 | "end": { |
323 | "line": 121, | 323 | "line": 122, |
324 | "column": 3 | 324 | "column": 3 |
325 | } | 325 | } |
326 | }, | 326 | }, |
@@ -329,11 +329,11 @@ | |||
329 | "defaultMessage": "!!!Is searching for update", | 329 | "defaultMessage": "!!!Is searching for update", |
330 | "file": "src/components/settings/settings/EditSettingsForm.js", | 330 | "file": "src/components/settings/settings/EditSettingsForm.js", |
331 | "start": { | 331 | "start": { |
332 | "line": 122, | 332 | "line": 123, |
333 | "column": 25 | 333 | "column": 25 |
334 | }, | 334 | }, |
335 | "end": { | 335 | "end": { |
336 | "line": 125, | 336 | "line": 126, |
337 | "column": 3 | 337 | "column": 3 |
338 | } | 338 | } |
339 | }, | 339 | }, |
@@ -342,11 +342,11 @@ | |||
342 | "defaultMessage": "!!!Update available, downloading...", | 342 | "defaultMessage": "!!!Update available, downloading...", |
343 | "file": "src/components/settings/settings/EditSettingsForm.js", | 343 | "file": "src/components/settings/settings/EditSettingsForm.js", |
344 | "start": { | 344 | "start": { |
345 | "line": 126, | 345 | "line": 127, |
346 | "column": 25 | 346 | "column": 25 |
347 | }, | 347 | }, |
348 | "end": { | 348 | "end": { |
349 | "line": 129, | 349 | "line": 130, |
350 | "column": 3 | 350 | "column": 3 |
351 | } | 351 | } |
352 | }, | 352 | }, |
@@ -355,11 +355,11 @@ | |||
355 | "defaultMessage": "!!!You are using the latest version of Ferdi", | 355 | "defaultMessage": "!!!You are using the latest version of Ferdi", |
356 | "file": "src/components/settings/settings/EditSettingsForm.js", | 356 | "file": "src/components/settings/settings/EditSettingsForm.js", |
357 | "start": { | 357 | "start": { |
358 | "line": 130, | 358 | "line": 131, |
359 | "column": 24 | 359 | "column": 24 |
360 | }, | 360 | }, |
361 | "end": { | 361 | "end": { |
362 | "line": 133, | 362 | "line": 134, |
363 | "column": 3 | 363 | "column": 3 |
364 | } | 364 | } |
365 | }, | 365 | }, |
@@ -368,11 +368,11 @@ | |||
368 | "defaultMessage": "!!!Current version:", | 368 | "defaultMessage": "!!!Current version:", |
369 | "file": "src/components/settings/settings/EditSettingsForm.js", | 369 | "file": "src/components/settings/settings/EditSettingsForm.js", |
370 | "start": { | 370 | "start": { |
371 | "line": 134, | 371 | "line": 135, |
372 | "column": 18 | 372 | "column": 18 |
373 | }, | 373 | }, |
374 | "end": { | 374 | "end": { |
375 | "line": 137, | 375 | "line": 138, |
376 | "column": 3 | 376 | "column": 3 |
377 | } | 377 | } |
378 | }, | 378 | }, |
@@ -381,11 +381,11 @@ | |||
381 | "defaultMessage": "!!!Changes require restart", | 381 | "defaultMessage": "!!!Changes require restart", |
382 | "file": "src/components/settings/settings/EditSettingsForm.js", | 382 | "file": "src/components/settings/settings/EditSettingsForm.js", |
383 | "start": { | 383 | "start": { |
384 | "line": 138, | 384 | "line": 139, |
385 | "column": 29 | 385 | "column": 29 |
386 | }, | 386 | }, |
387 | "end": { | 387 | "end": { |
388 | "line": 141, | 388 | "line": 142, |
389 | "column": 3 | 389 | "column": 3 |
390 | } | 390 | } |
391 | }, | 391 | }, |
@@ -394,11 +394,11 @@ | |||
394 | "defaultMessage": "!!!Official translations are English & German. All other languages are community based translations.", | 394 | "defaultMessage": "!!!Official translations are English & German. All other languages are community based translations.", |
395 | "file": "src/components/settings/settings/EditSettingsForm.js", | 395 | "file": "src/components/settings/settings/EditSettingsForm.js", |
396 | "start": { | 396 | "start": { |
397 | "line": 142, | 397 | "line": 143, |
398 | "column": 22 | 398 | "column": 22 |
399 | }, | 399 | }, |
400 | "end": { | 400 | "end": { |
401 | "line": 145, | 401 | "line": 146, |
402 | "column": 3 | 402 | "column": 3 |
403 | } | 403 | } |
404 | } | 404 | } |
diff --git a/src/i18n/messages/src/features/nightlyBuilds/Component.json b/src/i18n/messages/src/features/nightlyBuilds/Component.json new file mode 100644 index 000000000..6b86ec29f --- /dev/null +++ b/src/i18n/messages/src/features/nightlyBuilds/Component.json | |||
@@ -0,0 +1,54 @@ | |||
1 | [ | ||
2 | { | ||
3 | "id": "feature.nightlyBuilds.title", | ||
4 | "defaultMessage": "!!!Nightly Builds", | ||
5 | "file": "src/features/nightlyBuilds/Component.js", | ||
6 | "start": { | ||
7 | "line": 14, | ||
8 | "column": 9 | ||
9 | }, | ||
10 | "end": { | ||
11 | "line": 17, | ||
12 | "column": 3 | ||
13 | } | ||
14 | }, | ||
15 | { | ||
16 | "id": "feature.nightlyBuilds.info", | ||
17 | "defaultMessage": "!!!Nightly builds are highly experimental versions of Ferdi that may contain unpolished or uncompleted features. These nightly builds are mainly used by developers to test their newly developed features and how they will perform in the final build. If you don't know what you are doing, we suggest not activating nightly builds.", | ||
18 | "file": "src/features/nightlyBuilds/Component.js", | ||
19 | "start": { | ||
20 | "line": 18, | ||
21 | "column": 8 | ||
22 | }, | ||
23 | "end": { | ||
24 | "line": 21, | ||
25 | "column": 3 | ||
26 | } | ||
27 | }, | ||
28 | { | ||
29 | "id": "feature.nightlyBuilds.activate", | ||
30 | "defaultMessage": "!!!Activate", | ||
31 | "file": "src/features/nightlyBuilds/Component.js", | ||
32 | "start": { | ||
33 | "line": 22, | ||
34 | "column": 12 | ||
35 | }, | ||
36 | "end": { | ||
37 | "line": 25, | ||
38 | "column": 3 | ||
39 | } | ||
40 | }, | ||
41 | { | ||
42 | "id": "feature.nightlyBuilds.cancel", | ||
43 | "defaultMessage": "!!!Cancel", | ||
44 | "file": "src/features/nightlyBuilds/Component.js", | ||
45 | "start": { | ||
46 | "line": 26, | ||
47 | "column": 10 | ||
48 | }, | ||
49 | "end": { | ||
50 | "line": 29, | ||
51 | "column": 3 | ||
52 | } | ||
53 | } | ||
54 | ] \ No newline at end of file | ||
diff --git a/src/i18n/messages/src/features/workspaces/components/EditWorkspaceForm.json b/src/i18n/messages/src/features/workspaces/components/EditWorkspaceForm.json index 4b047eac1..053751c84 100644 --- a/src/i18n/messages/src/features/workspaces/components/EditWorkspaceForm.json +++ b/src/i18n/messages/src/features/workspaces/components/EditWorkspaceForm.json | |||
@@ -92,7 +92,7 @@ | |||
92 | }, | 92 | }, |
93 | { | 93 | { |
94 | "id": "settings.services.noServicesAdded", | 94 | "id": "settings.services.noServicesAdded", |
95 | "defaultMessage": "!!!You haven't added any services yet.", | 95 | "defaultMessage": "!!!Start by adding a service.", |
96 | "file": "src/features/workspaces/components/EditWorkspaceForm.js", | 96 | "file": "src/features/workspaces/components/EditWorkspaceForm.js", |
97 | "start": { | 97 | "start": { |
98 | "line": 49, | 98 | "line": 49, |
diff --git a/src/i18n/messages/src/features/workspaces/components/WorkspacesDashboard.json b/src/i18n/messages/src/features/workspaces/components/WorkspacesDashboard.json index 87b8942ce..d67bc492d 100644 --- a/src/i18n/messages/src/features/workspaces/components/WorkspacesDashboard.json +++ b/src/i18n/messages/src/features/workspaces/components/WorkspacesDashboard.json | |||
@@ -14,7 +14,7 @@ | |||
14 | }, | 14 | }, |
15 | { | 15 | { |
16 | "id": "settings.workspaces.noWorkspacesAdded", | 16 | "id": "settings.workspaces.noWorkspacesAdded", |
17 | "defaultMessage": "!!!You haven't added any workspaces yet.", | 17 | "defaultMessage": "!!!You haven't created any workspaces yet.", |
18 | "file": "src/features/workspaces/components/WorkspacesDashboard.js", | 18 | "file": "src/features/workspaces/components/WorkspacesDashboard.js", |
19 | "start": { | 19 | "start": { |
20 | "line": 24, | 20 | "line": 24, |
diff --git a/src/internal-server b/src/internal-server | |||
Subproject ae1edff6d5139e5912a8f99dac8da274add7fd7 | Subproject 95ae59926dbd88d55a5377be997558a9e112ab4 | ||
diff --git a/src/stores/FeaturesStore.js b/src/stores/FeaturesStore.js index 8a279bc8a..631d0318e 100644 --- a/src/stores/FeaturesStore.js +++ b/src/stores/FeaturesStore.js | |||
@@ -14,6 +14,7 @@ import serviceProxy from '../features/serviceProxy'; | |||
14 | import basicAuth from '../features/basicAuth'; | 14 | import basicAuth from '../features/basicAuth'; |
15 | import workspaces from '../features/workspaces'; | 15 | import workspaces from '../features/workspaces'; |
16 | import quickSwitch from '../features/quickSwitch'; | 16 | import quickSwitch from '../features/quickSwitch'; |
17 | import nightlyBuilds from '../features/nightlyBuilds'; | ||
17 | import publishDebugInfo from '../features/publishDebugInfo'; | 18 | import publishDebugInfo from '../features/publishDebugInfo'; |
18 | import shareFranz from '../features/shareFranz'; | 19 | import shareFranz from '../features/shareFranz'; |
19 | import announcements from '../features/announcements'; | 20 | import announcements from '../features/announcements'; |
@@ -85,6 +86,7 @@ export default class FeaturesStore extends Store { | |||
85 | basicAuth(this.stores, this.actions); | 86 | basicAuth(this.stores, this.actions); |
86 | workspaces(this.stores, this.actions); | 87 | workspaces(this.stores, this.actions); |
87 | quickSwitch(this.stores, this.actions); | 88 | quickSwitch(this.stores, this.actions); |
89 | nightlyBuilds(this.stores, this.actions); | ||
88 | publishDebugInfo(this.stores, this.actions); | 90 | publishDebugInfo(this.stores, this.actions); |
89 | shareFranz(this.stores, this.actions); | 91 | shareFranz(this.stores, this.actions); |
90 | announcements(this.stores, this.actions); | 92 | announcements(this.stores, this.actions); |
diff --git a/src/styles/quick-switch.scss b/src/styles/features.scss index 356123c4c..d2931f837 100644 --- a/src/styles/quick-switch.scss +++ b/src/styles/features.scss | |||
@@ -10,4 +10,4 @@ | |||
10 | .active { | 10 | .active { |
11 | background: $theme-brand-primary; | 11 | background: $theme-brand-primary; |
12 | } | 12 | } |
13 | } \ No newline at end of file | 13 | } |
diff --git a/src/styles/main.scss b/src/styles/main.scss index ceec4a95e..c57dc6fcd 100644 --- a/src/styles/main.scss +++ b/src/styles/main.scss | |||
@@ -30,7 +30,7 @@ $mdi-font-path: '../node_modules/mdi/fonts'; | |||
30 | @import './content-tabs.scss'; | 30 | @import './content-tabs.scss'; |
31 | @import './invite.scss'; | 31 | @import './invite.scss'; |
32 | @import './title-bar.scss'; | 32 | @import './title-bar.scss'; |
33 | @import './quick-switch.scss'; | 33 | @import './features.scss'; |
34 | 34 | ||
35 | // form | 35 | // form |
36 | @import './input.scss'; | 36 | @import './input.scss'; |
diff --git a/src/styles/settings.scss b/src/styles/settings.scss index dab48ef0b..b908305de 100644 --- a/src/styles/settings.scss +++ b/src/styles/settings.scss | |||
@@ -330,6 +330,10 @@ | |||
330 | text-align: center; | 330 | text-align: center; |
331 | width: 100%; | 331 | width: 100%; |
332 | 332 | ||
333 | .settings__empty-state-text { | ||
334 | margin-bottom: 1em; | ||
335 | } | ||
336 | |||
333 | a.button { margin-top: 40px; } | 337 | a.button { margin-top: 40px; } |
334 | } | 338 | } |
335 | 339 | ||