diff options
author | 2019-10-14 10:38:27 +0200 | |
---|---|---|
committer | 2019-10-14 10:38:27 +0200 | |
commit | c84edee908d40a9cab45b9ae3c5dc899fbb3eb11 (patch) | |
tree | 80158d14869b59723d09535558358d62b2612c2b /src | |
parent | Add indicator for hibernating services (diff) | |
download | ferdium-app-c84edee908d40a9cab45b9ae3c5dc899fbb3eb11.tar.gz ferdium-app-c84edee908d40a9cab45b9ae3c5dc899fbb3eb11.tar.zst ferdium-app-c84edee908d40a9cab45b9ae3c5dc899fbb3eb11.zip |
Add local server to allow serverlesss usage
Diffstat (limited to 'src')
-rw-r--r-- | src/components/auth/Login.js | 22 | ||||
-rw-r--r-- | src/components/auth/Signup.js | 22 | ||||
-rw-r--r-- | src/components/auth/Welcome.js | 21 | ||||
-rw-r--r-- | src/components/services/content/Services.js | 32 | ||||
-rw-r--r-- | src/helpers/serverless-helpers.js | 16 | ||||
-rw-r--r-- | src/i18n/locales/defaultMessages.json | 190 | ||||
-rw-r--r-- | src/i18n/locales/en-US.json | 2 | ||||
-rw-r--r-- | src/i18n/messages/src/components/auth/Login.json | 70 | ||||
-rw-r--r-- | src/i18n/messages/src/components/auth/Signup.json | 70 | ||||
-rw-r--r-- | src/i18n/messages/src/components/auth/Welcome.json | 21 | ||||
-rw-r--r-- | src/i18n/messages/src/components/services/content/Services.json | 29 | ||||
-rw-r--r-- | src/index.js | 3 | ||||
-rw-r--r-- | src/styles/services.scss | 2 | ||||
-rw-r--r-- | src/styles/type.scss | 3 | ||||
-rw-r--r-- | src/styles/welcome.scss | 1 |
15 files changed, 380 insertions, 124 deletions
diff --git a/src/components/auth/Login.js b/src/components/auth/Login.js index eea5a09bf..e58016e25 100644 --- a/src/components/auth/Login.js +++ b/src/components/auth/Login.js | |||
@@ -1,11 +1,13 @@ | |||
1 | /* eslint jsx-a11y/anchor-is-valid: 0 */ | ||
1 | import React, { Component } from 'react'; | 2 | import React, { Component } from 'react'; |
2 | import PropTypes from 'prop-types'; | 3 | import PropTypes from 'prop-types'; |
3 | import { observer } from 'mobx-react'; | 4 | import { observer, inject } from 'mobx-react'; |
4 | import { defineMessages, intlShape } from 'react-intl'; | 5 | import { defineMessages, intlShape } from 'react-intl'; |
5 | 6 | ||
6 | import { isDevMode, useLiveAPI } from '../../environment'; | 7 | import { isDevMode, useLiveAPI } from '../../environment'; |
7 | import Form from '../../lib/Form'; | 8 | import Form from '../../lib/Form'; |
8 | import { required, email } from '../../helpers/validation-helpers'; | 9 | import { required, email } from '../../helpers/validation-helpers'; |
10 | import serverlessLogin from '../../helpers/serverless-helpers'; | ||
9 | import Input from '../ui/Input'; | 11 | import Input from '../ui/Input'; |
10 | import Button from '../ui/Button'; | 12 | import Button from '../ui/Button'; |
11 | import Link from '../ui/Link'; | 13 | import Link from '../ui/Link'; |
@@ -54,13 +56,21 @@ const messages = defineMessages({ | |||
54 | id: 'login.link.signup', | 56 | id: 'login.link.signup', |
55 | defaultMessage: '!!!Create a free account', | 57 | defaultMessage: '!!!Create a free account', |
56 | }, | 58 | }, |
59 | changeServer: { | ||
60 | id: 'login.changeServer', | ||
61 | defaultMessage: '!!!Change server', | ||
62 | }, | ||
63 | serverless: { | ||
64 | id: 'services.serverless', | ||
65 | defaultMessage: '!!!Use Ferdi without an Account', | ||
66 | }, | ||
57 | passwordLink: { | 67 | passwordLink: { |
58 | id: 'login.link.password', | 68 | id: 'login.link.password', |
59 | defaultMessage: '!!!Forgot password', | 69 | defaultMessage: '!!!Forgot password', |
60 | }, | 70 | }, |
61 | }); | 71 | }); |
62 | 72 | ||
63 | export default @observer class Login extends Component { | 73 | export default @observer @inject('actions') class Login extends Component { |
64 | static propTypes = { | 74 | static propTypes = { |
65 | onSubmit: PropTypes.func.isRequired, | 75 | onSubmit: PropTypes.func.isRequired, |
66 | isSubmitting: PropTypes.bool.isRequired, | 76 | isSubmitting: PropTypes.bool.isRequired, |
@@ -69,6 +79,7 @@ export default @observer class Login extends Component { | |||
69 | signupRoute: PropTypes.string.isRequired, | 79 | signupRoute: PropTypes.string.isRequired, |
70 | passwordRoute: PropTypes.string.isRequired, | 80 | passwordRoute: PropTypes.string.isRequired, |
71 | error: globalErrorPropType.isRequired, | 81 | error: globalErrorPropType.isRequired, |
82 | actions: PropTypes.object.isRequired, | ||
72 | }; | 83 | }; |
73 | 84 | ||
74 | static contextTypes = { | 85 | static contextTypes = { |
@@ -103,6 +114,10 @@ export default @observer class Login extends Component { | |||
103 | }); | 114 | }); |
104 | } | 115 | } |
105 | 116 | ||
117 | useLocalServer() { | ||
118 | serverlessLogin(this.props.actions); | ||
119 | } | ||
120 | |||
106 | render() { | 121 | render() { |
107 | const { form } = this; | 122 | const { form } = this; |
108 | const { intl } = this.context; | 123 | const { intl } = this.context; |
@@ -179,7 +194,8 @@ export default @observer class Login extends Component { | |||
179 | )} | 194 | )} |
180 | </form> | 195 | </form> |
181 | <div className="auth__links"> | 196 | <div className="auth__links"> |
182 | <Link to="/settings/app">Change server</Link> | 197 | <Link to="/settings/app">{intl.formatMessage(messages.changeServer)}</Link> |
198 | <a onClick={this.useLocalServer.bind(this)}>{intl.formatMessage(messages.serverless)}</a> | ||
183 | <Link to={signupRoute}>{intl.formatMessage(messages.signupLink)}</Link> | 199 | <Link to={signupRoute}>{intl.formatMessage(messages.signupLink)}</Link> |
184 | <Link to={passwordRoute}>{intl.formatMessage(messages.passwordLink)}</Link> | 200 | <Link to={passwordRoute}>{intl.formatMessage(messages.passwordLink)}</Link> |
185 | </div> | 201 | </div> |
diff --git a/src/components/auth/Signup.js b/src/components/auth/Signup.js index b36e71ce1..47e9daf18 100644 --- a/src/components/auth/Signup.js +++ b/src/components/auth/Signup.js | |||
@@ -1,11 +1,13 @@ | |||
1 | /* eslint jsx-a11y/anchor-is-valid: 0 */ | ||
1 | import React, { Component } from 'react'; | 2 | import React, { Component } from 'react'; |
2 | import PropTypes from 'prop-types'; | 3 | import PropTypes from 'prop-types'; |
3 | import { observer } from 'mobx-react'; | 4 | import { observer, inject } from 'mobx-react'; |
4 | import { defineMessages, intlShape } from 'react-intl'; | 5 | import { defineMessages, intlShape } from 'react-intl'; |
5 | 6 | ||
6 | import { isDevMode, useLiveAPI } from '../../environment'; | 7 | import { isDevMode, useLiveAPI } from '../../environment'; |
7 | import Form from '../../lib/Form'; | 8 | import Form from '../../lib/Form'; |
8 | import { required, email, minLength } from '../../helpers/validation-helpers'; | 9 | import { required, email, minLength } from '../../helpers/validation-helpers'; |
10 | import serverlessLogin from '../../helpers/serverless-helpers'; | ||
9 | import Input from '../ui/Input'; | 11 | import Input from '../ui/Input'; |
10 | import Button from '../ui/Button'; | 12 | import Button from '../ui/Button'; |
11 | import Link from '../ui/Link'; | 13 | import Link from '../ui/Link'; |
@@ -58,18 +60,27 @@ const messages = defineMessages({ | |||
58 | id: 'signup.link.login', | 60 | id: 'signup.link.login', |
59 | defaultMessage: '!!!Already have an account, sign in?', | 61 | defaultMessage: '!!!Already have an account, sign in?', |
60 | }, | 62 | }, |
63 | changeServer: { | ||
64 | id: 'login.changeServer', | ||
65 | defaultMessage: '!!!Change server', | ||
66 | }, | ||
67 | serverless: { | ||
68 | id: 'services.serverless', | ||
69 | defaultMessage: '!!!Use Ferdi without an Account', | ||
70 | }, | ||
61 | emailDuplicate: { | 71 | emailDuplicate: { |
62 | id: 'signup.emailDuplicate', | 72 | id: 'signup.emailDuplicate', |
63 | defaultMessage: '!!!A user with that email address already exists', | 73 | defaultMessage: '!!!A user with that email address already exists', |
64 | }, | 74 | }, |
65 | }); | 75 | }); |
66 | 76 | ||
67 | export default @observer class Signup extends Component { | 77 | export default @observer @inject('actions') class Signup extends Component { |
68 | static propTypes = { | 78 | static propTypes = { |
69 | onSubmit: PropTypes.func.isRequired, | 79 | onSubmit: PropTypes.func.isRequired, |
70 | isSubmitting: PropTypes.bool.isRequired, | 80 | isSubmitting: PropTypes.bool.isRequired, |
71 | loginRoute: PropTypes.string.isRequired, | 81 | loginRoute: PropTypes.string.isRequired, |
72 | error: globalErrorPropType.isRequired, | 82 | error: globalErrorPropType.isRequired, |
83 | actions: PropTypes.object.isRequired, | ||
73 | }; | 84 | }; |
74 | 85 | ||
75 | static contextTypes = { | 86 | static contextTypes = { |
@@ -112,6 +123,10 @@ export default @observer class Signup extends Component { | |||
112 | }); | 123 | }); |
113 | } | 124 | } |
114 | 125 | ||
126 | useLocalServer() { | ||
127 | serverlessLogin(this.props.actions); | ||
128 | } | ||
129 | |||
115 | render() { | 130 | render() { |
116 | const { form } = this; | 131 | const { form } = this; |
117 | const { intl } = this.context; | 132 | const { intl } = this.context; |
@@ -183,7 +198,8 @@ export default @observer class Signup extends Component { | |||
183 | </p> | 198 | </p> |
184 | </form> | 199 | </form> |
185 | <div className="auth__links"> | 200 | <div className="auth__links"> |
186 | <Link to="/settings/app">Change server</Link> | 201 | <Link to="/settings/app">{intl.formatMessage(messages.changeServer)}</Link> |
202 | <a onClick={this.useLocalServer.bind(this)}>{intl.formatMessage(messages.serverless)}</a> | ||
187 | <Link to={loginRoute}>{intl.formatMessage(messages.loginLink)}</Link> | 203 | <Link to={loginRoute}>{intl.formatMessage(messages.loginLink)}</Link> |
188 | </div> | 204 | </div> |
189 | </div> | 205 | </div> |
diff --git a/src/components/auth/Welcome.js b/src/components/auth/Welcome.js index ef917e336..2ca8b430f 100644 --- a/src/components/auth/Welcome.js +++ b/src/components/auth/Welcome.js | |||
@@ -1,7 +1,9 @@ | |||
1 | /* eslint jsx-a11y/anchor-is-valid: 0 */ | ||
1 | import React, { Component } from 'react'; | 2 | import React, { Component } from 'react'; |
2 | import PropTypes from 'prop-types'; | 3 | import PropTypes from 'prop-types'; |
3 | import { observer, PropTypes as MobxPropTypes } from 'mobx-react'; | 4 | import { observer, PropTypes as MobxPropTypes, inject } from 'mobx-react'; |
4 | import { defineMessages, intlShape } from 'react-intl'; | 5 | import { defineMessages, intlShape } from 'react-intl'; |
6 | import serverlessLogin from '../../helpers/serverless-helpers'; | ||
5 | 7 | ||
6 | import Link from '../ui/Link'; | 8 | import Link from '../ui/Link'; |
7 | 9 | ||
@@ -14,19 +16,28 @@ const messages = defineMessages({ | |||
14 | id: 'welcome.loginButton', | 16 | id: 'welcome.loginButton', |
15 | defaultMessage: '!!!Login to your account', | 17 | defaultMessage: '!!!Login to your account', |
16 | }, | 18 | }, |
19 | serverless: { | ||
20 | id: 'services.serverless', | ||
21 | defaultMessage: '!!!Use Ferdi without an Account', | ||
22 | }, | ||
17 | }); | 23 | }); |
18 | 24 | ||
19 | export default @observer class Login extends Component { | 25 | export default @observer @inject('actions') class Login extends Component { |
20 | static propTypes = { | 26 | static propTypes = { |
21 | loginRoute: PropTypes.string.isRequired, | 27 | loginRoute: PropTypes.string.isRequired, |
22 | signupRoute: PropTypes.string.isRequired, | 28 | signupRoute: PropTypes.string.isRequired, |
23 | recipes: MobxPropTypes.arrayOrObservableArray.isRequired, | 29 | recipes: MobxPropTypes.arrayOrObservableArray.isRequired, |
30 | actions: PropTypes.object.isRequired, | ||
24 | }; | 31 | }; |
25 | 32 | ||
26 | static contextTypes = { | 33 | static contextTypes = { |
27 | intl: intlShape, | 34 | intl: intlShape, |
28 | }; | 35 | }; |
29 | 36 | ||
37 | useLocalServer() { | ||
38 | serverlessLogin(this.props.actions); | ||
39 | } | ||
40 | |||
30 | render() { | 41 | render() { |
31 | const { intl } = this.context; | 42 | const { intl } = this.context; |
32 | const { | 43 | const { |
@@ -53,6 +64,12 @@ export default @observer class Login extends Component { | |||
53 | </Link> | 64 | </Link> |
54 | <br /> | 65 | <br /> |
55 | <br /> | 66 | <br /> |
67 | <a className="button" onClick={this.useLocalServer.bind(this)}> | ||
68 | {intl.formatMessage(messages.serverless)} | ||
69 | </a> | ||
70 | <br /> | ||
71 | <br /> | ||
72 | |||
56 | 73 | ||
57 | <Link to="settings/app"> | 74 | <Link to="settings/app"> |
58 | <span style={{ | 75 | <span style={{ |
diff --git a/src/components/services/content/Services.js b/src/components/services/content/Services.js index edff29ae8..6d7909362 100644 --- a/src/components/services/content/Services.js +++ b/src/components/services/content/Services.js | |||
@@ -1,6 +1,6 @@ | |||
1 | import React, { Component } from 'react'; | 1 | import React, { Component } from 'react'; |
2 | import PropTypes from 'prop-types'; | 2 | import PropTypes from 'prop-types'; |
3 | import { observer, PropTypes as MobxPropTypes } from 'mobx-react'; | 3 | import { observer, PropTypes as MobxPropTypes, inject } from 'mobx-react'; |
4 | import { Link } from 'react-router'; | 4 | import { Link } from 'react-router'; |
5 | import { defineMessages, intlShape } from 'react-intl'; | 5 | import { defineMessages, intlShape } from 'react-intl'; |
6 | import Confetti from 'react-confetti'; | 6 | import Confetti from 'react-confetti'; |
@@ -9,6 +9,7 @@ import injectSheet from 'react-jss'; | |||
9 | 9 | ||
10 | import ServiceView from './ServiceView'; | 10 | import ServiceView from './ServiceView'; |
11 | import Appear from '../../ui/effects/Appear'; | 11 | import Appear from '../../ui/effects/Appear'; |
12 | import serverlessLogin from '../../../helpers/serverless-helpers'; | ||
12 | 13 | ||
13 | const messages = defineMessages({ | 14 | const messages = defineMessages({ |
14 | welcome: { | 15 | welcome: { |
@@ -23,6 +24,10 @@ const messages = defineMessages({ | |||
23 | id: 'services.login', | 24 | id: 'services.login', |
24 | defaultMessage: '!!!Please login to use Ferdi.', | 25 | defaultMessage: '!!!Please login to use Ferdi.', |
25 | }, | 26 | }, |
27 | serverless: { | ||
28 | id: 'services.serverless', | ||
29 | defaultMessage: '!!!Use Ferdi without an Account', | ||
30 | }, | ||
26 | serverInfo: { | 31 | serverInfo: { |
27 | id: 'services.serverInfo', | 32 | id: 'services.serverInfo', |
28 | defaultMessage: '!!!Optionally, you can change your Ferdi server by clicking the cog in the bottom left corner.', | 33 | defaultMessage: '!!!Optionally, you can change your Ferdi server by clicking the cog in the bottom left corner.', |
@@ -39,7 +44,7 @@ const styles = { | |||
39 | }, | 44 | }, |
40 | }; | 45 | }; |
41 | 46 | ||
42 | export default @observer @injectSheet(styles) class Services extends Component { | 47 | export default @observer @inject('actions') @injectSheet(styles) class Services extends Component { |
43 | static propTypes = { | 48 | static propTypes = { |
44 | services: MobxPropTypes.arrayOrObservableArray, | 49 | services: MobxPropTypes.arrayOrObservableArray, |
45 | setWebviewReference: PropTypes.func.isRequired, | 50 | setWebviewReference: PropTypes.func.isRequired, |
@@ -52,6 +57,7 @@ export default @observer @injectSheet(styles) class Services extends Component { | |||
52 | userHasCompletedSignup: PropTypes.bool.isRequired, | 57 | userHasCompletedSignup: PropTypes.bool.isRequired, |
53 | hasActivatedTrial: PropTypes.bool.isRequired, | 58 | hasActivatedTrial: PropTypes.bool.isRequired, |
54 | classes: PropTypes.object.isRequired, | 59 | classes: PropTypes.object.isRequired, |
60 | actions: PropTypes.object.isRequired, | ||
55 | }; | 61 | }; |
56 | 62 | ||
57 | static defaultProps = { | 63 | static defaultProps = { |
@@ -68,6 +74,12 @@ export default @observer @injectSheet(styles) class Services extends Component { | |||
68 | 74 | ||
69 | _confettiTimeout = null; | 75 | _confettiTimeout = null; |
70 | 76 | ||
77 | constructor(props) { | ||
78 | super(props); | ||
79 | |||
80 | this.useLocalServer = this.useLocalServer.bind(this); | ||
81 | } | ||
82 | |||
71 | componentDidMount() { | 83 | componentDidMount() { |
72 | this._confettiTimeout = window.setTimeout(() => { | 84 | this._confettiTimeout = window.setTimeout(() => { |
73 | this.setState({ | 85 | this.setState({ |
@@ -82,6 +94,10 @@ export default @observer @injectSheet(styles) class Services extends Component { | |||
82 | } | 94 | } |
83 | } | 95 | } |
84 | 96 | ||
97 | useLocalServer() { | ||
98 | serverlessLogin(this.props.actions); | ||
99 | } | ||
100 | |||
85 | render() { | 101 | render() { |
86 | const { | 102 | const { |
87 | services, | 103 | services, |
@@ -136,6 +152,18 @@ export default @observer @injectSheet(styles) class Services extends Component { | |||
136 | <Link to={isLoggedIn ? '/settings/services' : '/auth/welcome'} className="button"> | 152 | <Link to={isLoggedIn ? '/settings/services' : '/auth/welcome'} className="button"> |
137 | { isLoggedIn ? intl.formatMessage(messages.getStarted) : 'Login' } | 153 | { isLoggedIn ? intl.formatMessage(messages.getStarted) : 'Login' } |
138 | </Link> | 154 | </Link> |
155 | {!isLoggedIn && ( | ||
156 | <button | ||
157 | type="button" | ||
158 | className="button" | ||
159 | style={{ | ||
160 | marginLeft: 10, | ||
161 | }} | ||
162 | onClick={this.useLocalServer} | ||
163 | > | ||
164 | {intl.formatMessage(messages.serverless)} | ||
165 | </button> | ||
166 | )} | ||
139 | </Appear> | 167 | </Appear> |
140 | </div> | 168 | </div> |
141 | </Appear> | 169 | </Appear> |
diff --git a/src/helpers/serverless-helpers.js b/src/helpers/serverless-helpers.js new file mode 100644 index 000000000..741bce7f9 --- /dev/null +++ b/src/helpers/serverless-helpers.js | |||
@@ -0,0 +1,16 @@ | |||
1 | export default function useLocalServer(actions) { | ||
2 | // Use local server for user | ||
3 | actions.settings.update({ | ||
4 | type: 'app', | ||
5 | data: { | ||
6 | server: 'http://localhost:45569', | ||
7 | }, | ||
8 | }); | ||
9 | |||
10 | // Log into local server | ||
11 | // Credentials are ignored by the server but the client requires them | ||
12 | actions.user.login({ | ||
13 | email: 'ferdi@localhost', | ||
14 | password: 'FERDI_', | ||
15 | }); | ||
16 | } | ||
diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json index c2ce3d783..e22c80246 100644 --- a/src/i18n/locales/defaultMessages.json +++ b/src/i18n/locales/defaultMessages.json | |||
@@ -272,143 +272,169 @@ | |||
272 | "defaultMessage": "!!!Sign in", | 272 | "defaultMessage": "!!!Sign in", |
273 | "end": { | 273 | "end": { |
274 | "column": 3, | 274 | "column": 3, |
275 | "line": 20 | 275 | "line": 22 |
276 | }, | 276 | }, |
277 | "file": "src/components/auth/Login.js", | 277 | "file": "src/components/auth/Login.js", |
278 | "id": "login.headline", | 278 | "id": "login.headline", |
279 | "start": { | 279 | "start": { |
280 | "column": 12, | 280 | "column": 12, |
281 | "line": 17 | 281 | "line": 19 |
282 | } | 282 | } |
283 | }, | 283 | }, |
284 | { | 284 | { |
285 | "defaultMessage": "!!!Email address", | 285 | "defaultMessage": "!!!Email address", |
286 | "end": { | 286 | "end": { |
287 | "column": 3, | 287 | "column": 3, |
288 | "line": 24 | 288 | "line": 26 |
289 | }, | 289 | }, |
290 | "file": "src/components/auth/Login.js", | 290 | "file": "src/components/auth/Login.js", |
291 | "id": "login.email.label", | 291 | "id": "login.email.label", |
292 | "start": { | 292 | "start": { |
293 | "column": 14, | 293 | "column": 14, |
294 | "line": 21 | 294 | "line": 23 |
295 | } | 295 | } |
296 | }, | 296 | }, |
297 | { | 297 | { |
298 | "defaultMessage": "!!!Password", | 298 | "defaultMessage": "!!!Password", |
299 | "end": { | 299 | "end": { |
300 | "column": 3, | 300 | "column": 3, |
301 | "line": 28 | 301 | "line": 30 |
302 | }, | 302 | }, |
303 | "file": "src/components/auth/Login.js", | 303 | "file": "src/components/auth/Login.js", |
304 | "id": "login.password.label", | 304 | "id": "login.password.label", |
305 | "start": { | 305 | "start": { |
306 | "column": 17, | 306 | "column": 17, |
307 | "line": 25 | 307 | "line": 27 |
308 | } | 308 | } |
309 | }, | 309 | }, |
310 | { | 310 | { |
311 | "defaultMessage": "!!!Sign in", | 311 | "defaultMessage": "!!!Sign in", |
312 | "end": { | 312 | "end": { |
313 | "column": 3, | 313 | "column": 3, |
314 | "line": 32 | 314 | "line": 34 |
315 | }, | 315 | }, |
316 | "file": "src/components/auth/Login.js", | 316 | "file": "src/components/auth/Login.js", |
317 | "id": "login.submit.label", | 317 | "id": "login.submit.label", |
318 | "start": { | 318 | "start": { |
319 | "column": 21, | 319 | "column": 21, |
320 | "line": 29 | 320 | "line": 31 |
321 | } | 321 | } |
322 | }, | 322 | }, |
323 | { | 323 | { |
324 | "defaultMessage": "!!!Email or password not valid", | 324 | "defaultMessage": "!!!Email or password not valid", |
325 | "end": { | 325 | "end": { |
326 | "column": 3, | 326 | "column": 3, |
327 | "line": 36 | 327 | "line": 38 |
328 | }, | 328 | }, |
329 | "file": "src/components/auth/Login.js", | 329 | "file": "src/components/auth/Login.js", |
330 | "id": "login.invalidCredentials", | 330 | "id": "login.invalidCredentials", |
331 | "start": { | 331 | "start": { |
332 | "column": 22, | 332 | "column": 22, |
333 | "line": 33 | 333 | "line": 35 |
334 | } | 334 | } |
335 | }, | 335 | }, |
336 | { | 336 | { |
337 | "defaultMessage": "!!!Using a Franz account to log in?", | 337 | "defaultMessage": "!!!Using a Franz account to log in?", |
338 | "end": { | 338 | "end": { |
339 | "column": 3, | 339 | "column": 3, |
340 | "line": 40 | 340 | "line": 42 |
341 | }, | 341 | }, |
342 | "file": "src/components/auth/Login.js", | 342 | "file": "src/components/auth/Login.js", |
343 | "id": "login.customServerQuestion", | 343 | "id": "login.customServerQuestion", |
344 | "start": { | 344 | "start": { |
345 | "column": 24, | 345 | "column": 24, |
346 | "line": 37 | 346 | "line": 39 |
347 | } | 347 | } |
348 | }, | 348 | }, |
349 | { | 349 | { |
350 | "defaultMessage": "!!!Try importing your Franz account into Ferdi", | 350 | "defaultMessage": "!!!Try importing your Franz account into Ferdi", |
351 | "end": { | 351 | "end": { |
352 | "column": 3, | 352 | "column": 3, |
353 | "line": 44 | 353 | "line": 46 |
354 | }, | 354 | }, |
355 | "file": "src/components/auth/Login.js", | 355 | "file": "src/components/auth/Login.js", |
356 | "id": "login.customServerSuggestion", | 356 | "id": "login.customServerSuggestion", |
357 | "start": { | 357 | "start": { |
358 | "column": 26, | 358 | "column": 26, |
359 | "line": 41 | 359 | "line": 43 |
360 | } | 360 | } |
361 | }, | 361 | }, |
362 | { | 362 | { |
363 | "defaultMessage": "!!!Your session expired, please login again.", | 363 | "defaultMessage": "!!!Your session expired, please login again.", |
364 | "end": { | 364 | "end": { |
365 | "column": 3, | 365 | "column": 3, |
366 | "line": 48 | 366 | "line": 50 |
367 | }, | 367 | }, |
368 | "file": "src/components/auth/Login.js", | 368 | "file": "src/components/auth/Login.js", |
369 | "id": "login.tokenExpired", | 369 | "id": "login.tokenExpired", |
370 | "start": { | 370 | "start": { |
371 | "column": 16, | 371 | "column": 16, |
372 | "line": 45 | 372 | "line": 47 |
373 | } | 373 | } |
374 | }, | 374 | }, |
375 | { | 375 | { |
376 | "defaultMessage": "!!!Your session expired, please login again.", | 376 | "defaultMessage": "!!!Your session expired, please login again.", |
377 | "end": { | 377 | "end": { |
378 | "column": 3, | 378 | "column": 3, |
379 | "line": 52 | 379 | "line": 54 |
380 | }, | 380 | }, |
381 | "file": "src/components/auth/Login.js", | 381 | "file": "src/components/auth/Login.js", |
382 | "id": "login.serverLogout", | 382 | "id": "login.serverLogout", |
383 | "start": { | 383 | "start": { |
384 | "column": 16, | 384 | "column": 16, |
385 | "line": 49 | 385 | "line": 51 |
386 | } | 386 | } |
387 | }, | 387 | }, |
388 | { | 388 | { |
389 | "defaultMessage": "!!!Create a free account", | 389 | "defaultMessage": "!!!Create a free account", |
390 | "end": { | 390 | "end": { |
391 | "column": 3, | 391 | "column": 3, |
392 | "line": 56 | 392 | "line": 58 |
393 | }, | 393 | }, |
394 | "file": "src/components/auth/Login.js", | 394 | "file": "src/components/auth/Login.js", |
395 | "id": "login.link.signup", | 395 | "id": "login.link.signup", |
396 | "start": { | 396 | "start": { |
397 | "column": 14, | 397 | "column": 14, |
398 | "line": 53 | 398 | "line": 55 |
399 | } | ||
400 | }, | ||
401 | { | ||
402 | "defaultMessage": "!!!Change server", | ||
403 | "end": { | ||
404 | "column": 3, | ||
405 | "line": 62 | ||
406 | }, | ||
407 | "file": "src/components/auth/Login.js", | ||
408 | "id": "login.changeServer", | ||
409 | "start": { | ||
410 | "column": 16, | ||
411 | "line": 59 | ||
412 | } | ||
413 | }, | ||
414 | { | ||
415 | "defaultMessage": "!!!Use Ferdi without an Account", | ||
416 | "end": { | ||
417 | "column": 3, | ||
418 | "line": 66 | ||
419 | }, | ||
420 | "file": "src/components/auth/Login.js", | ||
421 | "id": "services.serverless", | ||
422 | "start": { | ||
423 | "column": 14, | ||
424 | "line": 63 | ||
399 | } | 425 | } |
400 | }, | 426 | }, |
401 | { | 427 | { |
402 | "defaultMessage": "!!!Forgot password", | 428 | "defaultMessage": "!!!Forgot password", |
403 | "end": { | 429 | "end": { |
404 | "column": 3, | 430 | "column": 3, |
405 | "line": 60 | 431 | "line": 70 |
406 | }, | 432 | }, |
407 | "file": "src/components/auth/Login.js", | 433 | "file": "src/components/auth/Login.js", |
408 | "id": "login.link.password", | 434 | "id": "login.link.password", |
409 | "start": { | 435 | "start": { |
410 | "column": 16, | 436 | "column": 16, |
411 | "line": 57 | 437 | "line": 67 |
412 | } | 438 | } |
413 | } | 439 | } |
414 | ], | 440 | ], |
@@ -638,143 +664,169 @@ | |||
638 | "defaultMessage": "!!!Sign up", | 664 | "defaultMessage": "!!!Sign up", |
639 | "end": { | 665 | "end": { |
640 | "column": 3, | 666 | "column": 3, |
641 | "line": 20 | 667 | "line": 22 |
642 | }, | 668 | }, |
643 | "file": "src/components/auth/Signup.js", | 669 | "file": "src/components/auth/Signup.js", |
644 | "id": "signup.headline", | 670 | "id": "signup.headline", |
645 | "start": { | 671 | "start": { |
646 | "column": 12, | 672 | "column": 12, |
647 | "line": 17 | 673 | "line": 19 |
648 | } | 674 | } |
649 | }, | 675 | }, |
650 | { | 676 | { |
651 | "defaultMessage": "!!!Firstname", | 677 | "defaultMessage": "!!!Firstname", |
652 | "end": { | 678 | "end": { |
653 | "column": 3, | 679 | "column": 3, |
654 | "line": 24 | 680 | "line": 26 |
655 | }, | 681 | }, |
656 | "file": "src/components/auth/Signup.js", | 682 | "file": "src/components/auth/Signup.js", |
657 | "id": "signup.firstname.label", | 683 | "id": "signup.firstname.label", |
658 | "start": { | 684 | "start": { |
659 | "column": 18, | 685 | "column": 18, |
660 | "line": 21 | 686 | "line": 23 |
661 | } | 687 | } |
662 | }, | 688 | }, |
663 | { | 689 | { |
664 | "defaultMessage": "!!!Lastname", | 690 | "defaultMessage": "!!!Lastname", |
665 | "end": { | 691 | "end": { |
666 | "column": 3, | 692 | "column": 3, |
667 | "line": 28 | 693 | "line": 30 |
668 | }, | 694 | }, |
669 | "file": "src/components/auth/Signup.js", | 695 | "file": "src/components/auth/Signup.js", |
670 | "id": "signup.lastname.label", | 696 | "id": "signup.lastname.label", |
671 | "start": { | 697 | "start": { |
672 | "column": 17, | 698 | "column": 17, |
673 | "line": 25 | 699 | "line": 27 |
674 | } | 700 | } |
675 | }, | 701 | }, |
676 | { | 702 | { |
677 | "defaultMessage": "!!!Email address", | 703 | "defaultMessage": "!!!Email address", |
678 | "end": { | 704 | "end": { |
679 | "column": 3, | 705 | "column": 3, |
680 | "line": 32 | 706 | "line": 34 |
681 | }, | 707 | }, |
682 | "file": "src/components/auth/Signup.js", | 708 | "file": "src/components/auth/Signup.js", |
683 | "id": "signup.email.label", | 709 | "id": "signup.email.label", |
684 | "start": { | 710 | "start": { |
685 | "column": 14, | 711 | "column": 14, |
686 | "line": 29 | 712 | "line": 31 |
687 | } | 713 | } |
688 | }, | 714 | }, |
689 | { | 715 | { |
690 | "defaultMessage": "!!!Password", | 716 | "defaultMessage": "!!!Password", |
691 | "end": { | 717 | "end": { |
692 | "column": 3, | 718 | "column": 3, |
693 | "line": 40 | 719 | "line": 42 |
694 | }, | 720 | }, |
695 | "file": "src/components/auth/Signup.js", | 721 | "file": "src/components/auth/Signup.js", |
696 | "id": "signup.password.label", | 722 | "id": "signup.password.label", |
697 | "start": { | 723 | "start": { |
698 | "column": 17, | 724 | "column": 17, |
699 | "line": 37 | 725 | "line": 39 |
700 | } | 726 | } |
701 | }, | 727 | }, |
702 | { | 728 | { |
703 | "defaultMessage": "!!!By creating a Ferdi account you accept the", | 729 | "defaultMessage": "!!!By creating a Ferdi account you accept the", |
704 | "end": { | 730 | "end": { |
705 | "column": 3, | 731 | "column": 3, |
706 | "line": 44 | 732 | "line": 46 |
707 | }, | 733 | }, |
708 | "file": "src/components/auth/Signup.js", | 734 | "file": "src/components/auth/Signup.js", |
709 | "id": "signup.legal.info", | 735 | "id": "signup.legal.info", |
710 | "start": { | 736 | "start": { |
711 | "column": 13, | 737 | "column": 13, |
712 | "line": 41 | 738 | "line": 43 |
713 | } | 739 | } |
714 | }, | 740 | }, |
715 | { | 741 | { |
716 | "defaultMessage": "!!!Terms of service", | 742 | "defaultMessage": "!!!Terms of service", |
717 | "end": { | 743 | "end": { |
718 | "column": 3, | 744 | "column": 3, |
719 | "line": 48 | 745 | "line": 50 |
720 | }, | 746 | }, |
721 | "file": "src/components/auth/Signup.js", | 747 | "file": "src/components/auth/Signup.js", |
722 | "id": "signup.legal.terms", | 748 | "id": "signup.legal.terms", |
723 | "start": { | 749 | "start": { |
724 | "column": 9, | 750 | "column": 9, |
725 | "line": 45 | 751 | "line": 47 |
726 | } | 752 | } |
727 | }, | 753 | }, |
728 | { | 754 | { |
729 | "defaultMessage": "!!!Privacy Statement", | 755 | "defaultMessage": "!!!Privacy Statement", |
730 | "end": { | 756 | "end": { |
731 | "column": 3, | 757 | "column": 3, |
732 | "line": 52 | 758 | "line": 54 |
733 | }, | 759 | }, |
734 | "file": "src/components/auth/Signup.js", | 760 | "file": "src/components/auth/Signup.js", |
735 | "id": "signup.legal.privacy", | 761 | "id": "signup.legal.privacy", |
736 | "start": { | 762 | "start": { |
737 | "column": 11, | 763 | "column": 11, |
738 | "line": 49 | 764 | "line": 51 |
739 | } | 765 | } |
740 | }, | 766 | }, |
741 | { | 767 | { |
742 | "defaultMessage": "!!!Create account", | 768 | "defaultMessage": "!!!Create account", |
743 | "end": { | 769 | "end": { |
744 | "column": 3, | 770 | "column": 3, |
745 | "line": 56 | 771 | "line": 58 |
746 | }, | 772 | }, |
747 | "file": "src/components/auth/Signup.js", | 773 | "file": "src/components/auth/Signup.js", |
748 | "id": "signup.submit.label", | 774 | "id": "signup.submit.label", |
749 | "start": { | 775 | "start": { |
750 | "column": 21, | 776 | "column": 21, |
751 | "line": 53 | 777 | "line": 55 |
752 | } | 778 | } |
753 | }, | 779 | }, |
754 | { | 780 | { |
755 | "defaultMessage": "!!!Already have an account, sign in?", | 781 | "defaultMessage": "!!!Already have an account, sign in?", |
756 | "end": { | 782 | "end": { |
757 | "column": 3, | 783 | "column": 3, |
758 | "line": 60 | 784 | "line": 62 |
759 | }, | 785 | }, |
760 | "file": "src/components/auth/Signup.js", | 786 | "file": "src/components/auth/Signup.js", |
761 | "id": "signup.link.login", | 787 | "id": "signup.link.login", |
762 | "start": { | 788 | "start": { |
763 | "column": 13, | 789 | "column": 13, |
764 | "line": 57 | 790 | "line": 59 |
791 | } | ||
792 | }, | ||
793 | { | ||
794 | "defaultMessage": "!!!Change server", | ||
795 | "end": { | ||
796 | "column": 3, | ||
797 | "line": 66 | ||
798 | }, | ||
799 | "file": "src/components/auth/Signup.js", | ||
800 | "id": "login.changeServer", | ||
801 | "start": { | ||
802 | "column": 16, | ||
803 | "line": 63 | ||
804 | } | ||
805 | }, | ||
806 | { | ||
807 | "defaultMessage": "!!!Use Ferdi without an Account", | ||
808 | "end": { | ||
809 | "column": 3, | ||
810 | "line": 70 | ||
811 | }, | ||
812 | "file": "src/components/auth/Signup.js", | ||
813 | "id": "services.serverless", | ||
814 | "start": { | ||
815 | "column": 14, | ||
816 | "line": 67 | ||
765 | } | 817 | } |
766 | }, | 818 | }, |
767 | { | 819 | { |
768 | "defaultMessage": "!!!A user with that email address already exists", | 820 | "defaultMessage": "!!!A user with that email address already exists", |
769 | "end": { | 821 | "end": { |
770 | "column": 3, | 822 | "column": 3, |
771 | "line": 64 | 823 | "line": 74 |
772 | }, | 824 | }, |
773 | "file": "src/components/auth/Signup.js", | 825 | "file": "src/components/auth/Signup.js", |
774 | "id": "signup.emailDuplicate", | 826 | "id": "signup.emailDuplicate", |
775 | "start": { | 827 | "start": { |
776 | "column": 18, | 828 | "column": 18, |
777 | "line": 61 | 829 | "line": 71 |
778 | } | 830 | } |
779 | } | 831 | } |
780 | ], | 832 | ], |
@@ -786,26 +838,39 @@ | |||
786 | "defaultMessage": "!!!Create a free account", | 838 | "defaultMessage": "!!!Create a free account", |
787 | "end": { | 839 | "end": { |
788 | "column": 3, | 840 | "column": 3, |
789 | "line": 12 | 841 | "line": 14 |
790 | }, | 842 | }, |
791 | "file": "src/components/auth/Welcome.js", | 843 | "file": "src/components/auth/Welcome.js", |
792 | "id": "welcome.signupButton", | 844 | "id": "welcome.signupButton", |
793 | "start": { | 845 | "start": { |
794 | "column": 16, | 846 | "column": 16, |
795 | "line": 9 | 847 | "line": 11 |
796 | } | 848 | } |
797 | }, | 849 | }, |
798 | { | 850 | { |
799 | "defaultMessage": "!!!Login to your account", | 851 | "defaultMessage": "!!!Login to your account", |
800 | "end": { | 852 | "end": { |
801 | "column": 3, | 853 | "column": 3, |
802 | "line": 16 | 854 | "line": 18 |
803 | }, | 855 | }, |
804 | "file": "src/components/auth/Welcome.js", | 856 | "file": "src/components/auth/Welcome.js", |
805 | "id": "welcome.loginButton", | 857 | "id": "welcome.loginButton", |
806 | "start": { | 858 | "start": { |
807 | "column": 15, | 859 | "column": 15, |
808 | "line": 13 | 860 | "line": 15 |
861 | } | ||
862 | }, | ||
863 | { | ||
864 | "defaultMessage": "!!!Use Ferdi without an Account", | ||
865 | "end": { | ||
866 | "column": 3, | ||
867 | "line": 22 | ||
868 | }, | ||
869 | "file": "src/components/auth/Welcome.js", | ||
870 | "id": "services.serverless", | ||
871 | "start": { | ||
872 | "column": 14, | ||
873 | "line": 19 | ||
809 | } | 874 | } |
810 | } | 875 | } |
811 | ], | 876 | ], |
@@ -1167,52 +1232,65 @@ | |||
1167 | "defaultMessage": "!!!Welcome to Ferdi", | 1232 | "defaultMessage": "!!!Welcome to Ferdi", |
1168 | "end": { | 1233 | "end": { |
1169 | "column": 3, | 1234 | "column": 3, |
1170 | "line": 17 | 1235 | "line": 18 |
1171 | }, | 1236 | }, |
1172 | "file": "src/components/services/content/Services.js", | 1237 | "file": "src/components/services/content/Services.js", |
1173 | "id": "services.welcome", | 1238 | "id": "services.welcome", |
1174 | "start": { | 1239 | "start": { |
1175 | "column": 11, | 1240 | "column": 11, |
1176 | "line": 14 | 1241 | "line": 15 |
1177 | } | 1242 | } |
1178 | }, | 1243 | }, |
1179 | { | 1244 | { |
1180 | "defaultMessage": "!!!Get started", | 1245 | "defaultMessage": "!!!Get started", |
1181 | "end": { | 1246 | "end": { |
1182 | "column": 3, | 1247 | "column": 3, |
1183 | "line": 21 | 1248 | "line": 22 |
1184 | }, | 1249 | }, |
1185 | "file": "src/components/services/content/Services.js", | 1250 | "file": "src/components/services/content/Services.js", |
1186 | "id": "services.getStarted", | 1251 | "id": "services.getStarted", |
1187 | "start": { | 1252 | "start": { |
1188 | "column": 14, | 1253 | "column": 14, |
1189 | "line": 18 | 1254 | "line": 19 |
1190 | } | 1255 | } |
1191 | }, | 1256 | }, |
1192 | { | 1257 | { |
1193 | "defaultMessage": "!!!Please login to use Ferdi.", | 1258 | "defaultMessage": "!!!Please login to use Ferdi.", |
1194 | "end": { | 1259 | "end": { |
1195 | "column": 3, | 1260 | "column": 3, |
1196 | "line": 25 | 1261 | "line": 26 |
1197 | }, | 1262 | }, |
1198 | "file": "src/components/services/content/Services.js", | 1263 | "file": "src/components/services/content/Services.js", |
1199 | "id": "services.login", | 1264 | "id": "services.login", |
1200 | "start": { | 1265 | "start": { |
1201 | "column": 9, | 1266 | "column": 9, |
1202 | "line": 22 | 1267 | "line": 23 |
1268 | } | ||
1269 | }, | ||
1270 | { | ||
1271 | "defaultMessage": "!!!Use Ferdi without an Account", | ||
1272 | "end": { | ||
1273 | "column": 3, | ||
1274 | "line": 30 | ||
1275 | }, | ||
1276 | "file": "src/components/services/content/Services.js", | ||
1277 | "id": "services.serverless", | ||
1278 | "start": { | ||
1279 | "column": 14, | ||
1280 | "line": 27 | ||
1203 | } | 1281 | } |
1204 | }, | 1282 | }, |
1205 | { | 1283 | { |
1206 | "defaultMessage": "!!!Optionally, you can change your Ferdi server by clicking the cog in the bottom left corner.", | 1284 | "defaultMessage": "!!!Optionally, you can change your Ferdi server by clicking the cog in the bottom left corner.", |
1207 | "end": { | 1285 | "end": { |
1208 | "column": 3, | 1286 | "column": 3, |
1209 | "line": 29 | 1287 | "line": 34 |
1210 | }, | 1288 | }, |
1211 | "file": "src/components/services/content/Services.js", | 1289 | "file": "src/components/services/content/Services.js", |
1212 | "id": "services.serverInfo", | 1290 | "id": "services.serverInfo", |
1213 | "start": { | 1291 | "start": { |
1214 | "column": 14, | 1292 | "column": 14, |
1215 | "line": 26 | 1293 | "line": 31 |
1216 | } | 1294 | } |
1217 | } | 1295 | } |
1218 | ], | 1296 | ], |
diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 2cdc57e3f..e7b0ced92 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json | |||
@@ -54,6 +54,7 @@ | |||
54 | "locked.invalidCredentials": "Password invalid", | 54 | "locked.invalidCredentials": "Password invalid", |
55 | "locked.password.label": "Password", | 55 | "locked.password.label": "Password", |
56 | "locked.submit.label": "Unlock", | 56 | "locked.submit.label": "Unlock", |
57 | "login.changeServer": "Change server", | ||
57 | "login.customServerQuestion": "Using a Franz account to log in?", | 58 | "login.customServerQuestion": "Using a Franz account to log in?", |
58 | "login.customServerSuggestion": "Try importing your Franz account into Ferdi", | 59 | "login.customServerSuggestion": "Try importing your Franz account into Ferdi", |
59 | "login.email.label": "Email address", | 60 | "login.email.label": "Email address", |
@@ -186,6 +187,7 @@ | |||
186 | "services.getStarted": "Get started", | 187 | "services.getStarted": "Get started", |
187 | "services.login": "Please login to use Ferdi.", | 188 | "services.login": "Please login to use Ferdi.", |
188 | "services.serverInfo": "Optionally, you can change your Ferdi server by clicking the cog in the bottom left corner.", | 189 | "services.serverInfo": "Optionally, you can change your Ferdi server by clicking the cog in the bottom left corner.", |
190 | "services.serverless": "Use Ferdi without an Account", | ||
189 | "services.welcome": "Welcome to Ferdi", | 191 | "services.welcome": "Welcome to Ferdi", |
190 | "settings.account.account.editButton": "Edit account", | 192 | "settings.account.account.editButton": "Edit account", |
191 | "settings.account.accountType.basic": "Basic Account", | 193 | "settings.account.accountType.basic": "Basic Account", |
diff --git a/src/i18n/messages/src/components/auth/Login.json b/src/i18n/messages/src/components/auth/Login.json index 7e4b32294..c3b4ee4eb 100644 --- a/src/i18n/messages/src/components/auth/Login.json +++ b/src/i18n/messages/src/components/auth/Login.json | |||
@@ -4,11 +4,11 @@ | |||
4 | "defaultMessage": "!!!Sign in", | 4 | "defaultMessage": "!!!Sign in", |
5 | "file": "src/components/auth/Login.js", | 5 | "file": "src/components/auth/Login.js", |
6 | "start": { | 6 | "start": { |
7 | "line": 17, | 7 | "line": 19, |
8 | "column": 12 | 8 | "column": 12 |
9 | }, | 9 | }, |
10 | "end": { | 10 | "end": { |
11 | "line": 20, | 11 | "line": 22, |
12 | "column": 3 | 12 | "column": 3 |
13 | } | 13 | } |
14 | }, | 14 | }, |
@@ -17,11 +17,11 @@ | |||
17 | "defaultMessage": "!!!Email address", | 17 | "defaultMessage": "!!!Email address", |
18 | "file": "src/components/auth/Login.js", | 18 | "file": "src/components/auth/Login.js", |
19 | "start": { | 19 | "start": { |
20 | "line": 21, | 20 | "line": 23, |
21 | "column": 14 | 21 | "column": 14 |
22 | }, | 22 | }, |
23 | "end": { | 23 | "end": { |
24 | "line": 24, | 24 | "line": 26, |
25 | "column": 3 | 25 | "column": 3 |
26 | } | 26 | } |
27 | }, | 27 | }, |
@@ -30,11 +30,11 @@ | |||
30 | "defaultMessage": "!!!Password", | 30 | "defaultMessage": "!!!Password", |
31 | "file": "src/components/auth/Login.js", | 31 | "file": "src/components/auth/Login.js", |
32 | "start": { | 32 | "start": { |
33 | "line": 25, | 33 | "line": 27, |
34 | "column": 17 | 34 | "column": 17 |
35 | }, | 35 | }, |
36 | "end": { | 36 | "end": { |
37 | "line": 28, | 37 | "line": 30, |
38 | "column": 3 | 38 | "column": 3 |
39 | } | 39 | } |
40 | }, | 40 | }, |
@@ -43,11 +43,11 @@ | |||
43 | "defaultMessage": "!!!Sign in", | 43 | "defaultMessage": "!!!Sign in", |
44 | "file": "src/components/auth/Login.js", | 44 | "file": "src/components/auth/Login.js", |
45 | "start": { | 45 | "start": { |
46 | "line": 29, | 46 | "line": 31, |
47 | "column": 21 | 47 | "column": 21 |
48 | }, | 48 | }, |
49 | "end": { | 49 | "end": { |
50 | "line": 32, | 50 | "line": 34, |
51 | "column": 3 | 51 | "column": 3 |
52 | } | 52 | } |
53 | }, | 53 | }, |
@@ -56,11 +56,11 @@ | |||
56 | "defaultMessage": "!!!Email or password not valid", | 56 | "defaultMessage": "!!!Email or password not valid", |
57 | "file": "src/components/auth/Login.js", | 57 | "file": "src/components/auth/Login.js", |
58 | "start": { | 58 | "start": { |
59 | "line": 33, | 59 | "line": 35, |
60 | "column": 22 | 60 | "column": 22 |
61 | }, | 61 | }, |
62 | "end": { | 62 | "end": { |
63 | "line": 36, | 63 | "line": 38, |
64 | "column": 3 | 64 | "column": 3 |
65 | } | 65 | } |
66 | }, | 66 | }, |
@@ -69,11 +69,11 @@ | |||
69 | "defaultMessage": "!!!Using a Franz account to log in?", | 69 | "defaultMessage": "!!!Using a Franz account to log in?", |
70 | "file": "src/components/auth/Login.js", | 70 | "file": "src/components/auth/Login.js", |
71 | "start": { | 71 | "start": { |
72 | "line": 37, | 72 | "line": 39, |
73 | "column": 24 | 73 | "column": 24 |
74 | }, | 74 | }, |
75 | "end": { | 75 | "end": { |
76 | "line": 40, | 76 | "line": 42, |
77 | "column": 3 | 77 | "column": 3 |
78 | } | 78 | } |
79 | }, | 79 | }, |
@@ -82,11 +82,11 @@ | |||
82 | "defaultMessage": "!!!Try importing your Franz account into Ferdi", | 82 | "defaultMessage": "!!!Try importing your Franz account into Ferdi", |
83 | "file": "src/components/auth/Login.js", | 83 | "file": "src/components/auth/Login.js", |
84 | "start": { | 84 | "start": { |
85 | "line": 41, | 85 | "line": 43, |
86 | "column": 26 | 86 | "column": 26 |
87 | }, | 87 | }, |
88 | "end": { | 88 | "end": { |
89 | "line": 44, | 89 | "line": 46, |
90 | "column": 3 | 90 | "column": 3 |
91 | } | 91 | } |
92 | }, | 92 | }, |
@@ -95,11 +95,11 @@ | |||
95 | "defaultMessage": "!!!Your session expired, please login again.", | 95 | "defaultMessage": "!!!Your session expired, please login again.", |
96 | "file": "src/components/auth/Login.js", | 96 | "file": "src/components/auth/Login.js", |
97 | "start": { | 97 | "start": { |
98 | "line": 45, | 98 | "line": 47, |
99 | "column": 16 | 99 | "column": 16 |
100 | }, | 100 | }, |
101 | "end": { | 101 | "end": { |
102 | "line": 48, | 102 | "line": 50, |
103 | "column": 3 | 103 | "column": 3 |
104 | } | 104 | } |
105 | }, | 105 | }, |
@@ -108,11 +108,11 @@ | |||
108 | "defaultMessage": "!!!Your session expired, please login again.", | 108 | "defaultMessage": "!!!Your session expired, please login again.", |
109 | "file": "src/components/auth/Login.js", | 109 | "file": "src/components/auth/Login.js", |
110 | "start": { | 110 | "start": { |
111 | "line": 49, | 111 | "line": 51, |
112 | "column": 16 | 112 | "column": 16 |
113 | }, | 113 | }, |
114 | "end": { | 114 | "end": { |
115 | "line": 52, | 115 | "line": 54, |
116 | "column": 3 | 116 | "column": 3 |
117 | } | 117 | } |
118 | }, | 118 | }, |
@@ -121,11 +121,37 @@ | |||
121 | "defaultMessage": "!!!Create a free account", | 121 | "defaultMessage": "!!!Create a free account", |
122 | "file": "src/components/auth/Login.js", | 122 | "file": "src/components/auth/Login.js", |
123 | "start": { | 123 | "start": { |
124 | "line": 53, | 124 | "line": 55, |
125 | "column": 14 | 125 | "column": 14 |
126 | }, | 126 | }, |
127 | "end": { | 127 | "end": { |
128 | "line": 56, | 128 | "line": 58, |
129 | "column": 3 | ||
130 | } | ||
131 | }, | ||
132 | { | ||
133 | "id": "login.changeServer", | ||
134 | "defaultMessage": "!!!Change server", | ||
135 | "file": "src/components/auth/Login.js", | ||
136 | "start": { | ||
137 | "line": 59, | ||
138 | "column": 16 | ||
139 | }, | ||
140 | "end": { | ||
141 | "line": 62, | ||
142 | "column": 3 | ||
143 | } | ||
144 | }, | ||
145 | { | ||
146 | "id": "services.serverless", | ||
147 | "defaultMessage": "!!!Use Ferdi without an Account", | ||
148 | "file": "src/components/auth/Login.js", | ||
149 | "start": { | ||
150 | "line": 63, | ||
151 | "column": 14 | ||
152 | }, | ||
153 | "end": { | ||
154 | "line": 66, | ||
129 | "column": 3 | 155 | "column": 3 |
130 | } | 156 | } |
131 | }, | 157 | }, |
@@ -134,11 +160,11 @@ | |||
134 | "defaultMessage": "!!!Forgot password", | 160 | "defaultMessage": "!!!Forgot password", |
135 | "file": "src/components/auth/Login.js", | 161 | "file": "src/components/auth/Login.js", |
136 | "start": { | 162 | "start": { |
137 | "line": 57, | 163 | "line": 67, |
138 | "column": 16 | 164 | "column": 16 |
139 | }, | 165 | }, |
140 | "end": { | 166 | "end": { |
141 | "line": 60, | 167 | "line": 70, |
142 | "column": 3 | 168 | "column": 3 |
143 | } | 169 | } |
144 | } | 170 | } |
diff --git a/src/i18n/messages/src/components/auth/Signup.json b/src/i18n/messages/src/components/auth/Signup.json index 9aa7b25ab..2628c9aa3 100644 --- a/src/i18n/messages/src/components/auth/Signup.json +++ b/src/i18n/messages/src/components/auth/Signup.json | |||
@@ -4,11 +4,11 @@ | |||
4 | "defaultMessage": "!!!Sign up", | 4 | "defaultMessage": "!!!Sign up", |
5 | "file": "src/components/auth/Signup.js", | 5 | "file": "src/components/auth/Signup.js", |
6 | "start": { | 6 | "start": { |
7 | "line": 17, | 7 | "line": 19, |
8 | "column": 12 | 8 | "column": 12 |
9 | }, | 9 | }, |
10 | "end": { | 10 | "end": { |
11 | "line": 20, | 11 | "line": 22, |
12 | "column": 3 | 12 | "column": 3 |
13 | } | 13 | } |
14 | }, | 14 | }, |
@@ -17,11 +17,11 @@ | |||
17 | "defaultMessage": "!!!Firstname", | 17 | "defaultMessage": "!!!Firstname", |
18 | "file": "src/components/auth/Signup.js", | 18 | "file": "src/components/auth/Signup.js", |
19 | "start": { | 19 | "start": { |
20 | "line": 21, | 20 | "line": 23, |
21 | "column": 18 | 21 | "column": 18 |
22 | }, | 22 | }, |
23 | "end": { | 23 | "end": { |
24 | "line": 24, | 24 | "line": 26, |
25 | "column": 3 | 25 | "column": 3 |
26 | } | 26 | } |
27 | }, | 27 | }, |
@@ -30,11 +30,11 @@ | |||
30 | "defaultMessage": "!!!Lastname", | 30 | "defaultMessage": "!!!Lastname", |
31 | "file": "src/components/auth/Signup.js", | 31 | "file": "src/components/auth/Signup.js", |
32 | "start": { | 32 | "start": { |
33 | "line": 25, | 33 | "line": 27, |
34 | "column": 17 | 34 | "column": 17 |
35 | }, | 35 | }, |
36 | "end": { | 36 | "end": { |
37 | "line": 28, | 37 | "line": 30, |
38 | "column": 3 | 38 | "column": 3 |
39 | } | 39 | } |
40 | }, | 40 | }, |
@@ -43,11 +43,11 @@ | |||
43 | "defaultMessage": "!!!Email address", | 43 | "defaultMessage": "!!!Email address", |
44 | "file": "src/components/auth/Signup.js", | 44 | "file": "src/components/auth/Signup.js", |
45 | "start": { | 45 | "start": { |
46 | "line": 29, | 46 | "line": 31, |
47 | "column": 14 | 47 | "column": 14 |
48 | }, | 48 | }, |
49 | "end": { | 49 | "end": { |
50 | "line": 32, | 50 | "line": 34, |
51 | "column": 3 | 51 | "column": 3 |
52 | } | 52 | } |
53 | }, | 53 | }, |
@@ -56,11 +56,11 @@ | |||
56 | "defaultMessage": "!!!Password", | 56 | "defaultMessage": "!!!Password", |
57 | "file": "src/components/auth/Signup.js", | 57 | "file": "src/components/auth/Signup.js", |
58 | "start": { | 58 | "start": { |
59 | "line": 37, | 59 | "line": 39, |
60 | "column": 17 | 60 | "column": 17 |
61 | }, | 61 | }, |
62 | "end": { | 62 | "end": { |
63 | "line": 40, | 63 | "line": 42, |
64 | "column": 3 | 64 | "column": 3 |
65 | } | 65 | } |
66 | }, | 66 | }, |
@@ -69,11 +69,11 @@ | |||
69 | "defaultMessage": "!!!By creating a Ferdi account you accept the", | 69 | "defaultMessage": "!!!By creating a Ferdi account you accept the", |
70 | "file": "src/components/auth/Signup.js", | 70 | "file": "src/components/auth/Signup.js", |
71 | "start": { | 71 | "start": { |
72 | "line": 41, | 72 | "line": 43, |
73 | "column": 13 | 73 | "column": 13 |
74 | }, | 74 | }, |
75 | "end": { | 75 | "end": { |
76 | "line": 44, | 76 | "line": 46, |
77 | "column": 3 | 77 | "column": 3 |
78 | } | 78 | } |
79 | }, | 79 | }, |
@@ -82,11 +82,11 @@ | |||
82 | "defaultMessage": "!!!Terms of service", | 82 | "defaultMessage": "!!!Terms of service", |
83 | "file": "src/components/auth/Signup.js", | 83 | "file": "src/components/auth/Signup.js", |
84 | "start": { | 84 | "start": { |
85 | "line": 45, | 85 | "line": 47, |
86 | "column": 9 | 86 | "column": 9 |
87 | }, | 87 | }, |
88 | "end": { | 88 | "end": { |
89 | "line": 48, | 89 | "line": 50, |
90 | "column": 3 | 90 | "column": 3 |
91 | } | 91 | } |
92 | }, | 92 | }, |
@@ -95,11 +95,11 @@ | |||
95 | "defaultMessage": "!!!Privacy Statement", | 95 | "defaultMessage": "!!!Privacy Statement", |
96 | "file": "src/components/auth/Signup.js", | 96 | "file": "src/components/auth/Signup.js", |
97 | "start": { | 97 | "start": { |
98 | "line": 49, | 98 | "line": 51, |
99 | "column": 11 | 99 | "column": 11 |
100 | }, | 100 | }, |
101 | "end": { | 101 | "end": { |
102 | "line": 52, | 102 | "line": 54, |
103 | "column": 3 | 103 | "column": 3 |
104 | } | 104 | } |
105 | }, | 105 | }, |
@@ -108,11 +108,11 @@ | |||
108 | "defaultMessage": "!!!Create account", | 108 | "defaultMessage": "!!!Create account", |
109 | "file": "src/components/auth/Signup.js", | 109 | "file": "src/components/auth/Signup.js", |
110 | "start": { | 110 | "start": { |
111 | "line": 53, | 111 | "line": 55, |
112 | "column": 21 | 112 | "column": 21 |
113 | }, | 113 | }, |
114 | "end": { | 114 | "end": { |
115 | "line": 56, | 115 | "line": 58, |
116 | "column": 3 | 116 | "column": 3 |
117 | } | 117 | } |
118 | }, | 118 | }, |
@@ -121,11 +121,37 @@ | |||
121 | "defaultMessage": "!!!Already have an account, sign in?", | 121 | "defaultMessage": "!!!Already have an account, sign in?", |
122 | "file": "src/components/auth/Signup.js", | 122 | "file": "src/components/auth/Signup.js", |
123 | "start": { | 123 | "start": { |
124 | "line": 57, | 124 | "line": 59, |
125 | "column": 13 | 125 | "column": 13 |
126 | }, | 126 | }, |
127 | "end": { | 127 | "end": { |
128 | "line": 60, | 128 | "line": 62, |
129 | "column": 3 | ||
130 | } | ||
131 | }, | ||
132 | { | ||
133 | "id": "login.changeServer", | ||
134 | "defaultMessage": "!!!Change server", | ||
135 | "file": "src/components/auth/Signup.js", | ||
136 | "start": { | ||
137 | "line": 63, | ||
138 | "column": 16 | ||
139 | }, | ||
140 | "end": { | ||
141 | "line": 66, | ||
142 | "column": 3 | ||
143 | } | ||
144 | }, | ||
145 | { | ||
146 | "id": "services.serverless", | ||
147 | "defaultMessage": "!!!Use Ferdi without an Account", | ||
148 | "file": "src/components/auth/Signup.js", | ||
149 | "start": { | ||
150 | "line": 67, | ||
151 | "column": 14 | ||
152 | }, | ||
153 | "end": { | ||
154 | "line": 70, | ||
129 | "column": 3 | 155 | "column": 3 |
130 | } | 156 | } |
131 | }, | 157 | }, |
@@ -134,11 +160,11 @@ | |||
134 | "defaultMessage": "!!!A user with that email address already exists", | 160 | "defaultMessage": "!!!A user with that email address already exists", |
135 | "file": "src/components/auth/Signup.js", | 161 | "file": "src/components/auth/Signup.js", |
136 | "start": { | 162 | "start": { |
137 | "line": 61, | 163 | "line": 71, |
138 | "column": 18 | 164 | "column": 18 |
139 | }, | 165 | }, |
140 | "end": { | 166 | "end": { |
141 | "line": 64, | 167 | "line": 74, |
142 | "column": 3 | 168 | "column": 3 |
143 | } | 169 | } |
144 | } | 170 | } |
diff --git a/src/i18n/messages/src/components/auth/Welcome.json b/src/i18n/messages/src/components/auth/Welcome.json index b4d2ce689..3f0c1e5c2 100644 --- a/src/i18n/messages/src/components/auth/Welcome.json +++ b/src/i18n/messages/src/components/auth/Welcome.json | |||
@@ -4,11 +4,11 @@ | |||
4 | "defaultMessage": "!!!Create a free account", | 4 | "defaultMessage": "!!!Create a free account", |
5 | "file": "src/components/auth/Welcome.js", | 5 | "file": "src/components/auth/Welcome.js", |
6 | "start": { | 6 | "start": { |
7 | "line": 9, | 7 | "line": 11, |
8 | "column": 16 | 8 | "column": 16 |
9 | }, | 9 | }, |
10 | "end": { | 10 | "end": { |
11 | "line": 12, | 11 | "line": 14, |
12 | "column": 3 | 12 | "column": 3 |
13 | } | 13 | } |
14 | }, | 14 | }, |
@@ -17,11 +17,24 @@ | |||
17 | "defaultMessage": "!!!Login to your account", | 17 | "defaultMessage": "!!!Login to your account", |
18 | "file": "src/components/auth/Welcome.js", | 18 | "file": "src/components/auth/Welcome.js", |
19 | "start": { | 19 | "start": { |
20 | "line": 13, | 20 | "line": 15, |
21 | "column": 15 | 21 | "column": 15 |
22 | }, | 22 | }, |
23 | "end": { | 23 | "end": { |
24 | "line": 16, | 24 | "line": 18, |
25 | "column": 3 | ||
26 | } | ||
27 | }, | ||
28 | { | ||
29 | "id": "services.serverless", | ||
30 | "defaultMessage": "!!!Use Ferdi without an Account", | ||
31 | "file": "src/components/auth/Welcome.js", | ||
32 | "start": { | ||
33 | "line": 19, | ||
34 | "column": 14 | ||
35 | }, | ||
36 | "end": { | ||
37 | "line": 22, | ||
25 | "column": 3 | 38 | "column": 3 |
26 | } | 39 | } |
27 | } | 40 | } |
diff --git a/src/i18n/messages/src/components/services/content/Services.json b/src/i18n/messages/src/components/services/content/Services.json index c2e57b8b5..6a5eb052e 100644 --- a/src/i18n/messages/src/components/services/content/Services.json +++ b/src/i18n/messages/src/components/services/content/Services.json | |||
@@ -4,11 +4,11 @@ | |||
4 | "defaultMessage": "!!!Welcome to Ferdi", | 4 | "defaultMessage": "!!!Welcome to Ferdi", |
5 | "file": "src/components/services/content/Services.js", | 5 | "file": "src/components/services/content/Services.js", |
6 | "start": { | 6 | "start": { |
7 | "line": 14, | 7 | "line": 15, |
8 | "column": 11 | 8 | "column": 11 |
9 | }, | 9 | }, |
10 | "end": { | 10 | "end": { |
11 | "line": 17, | 11 | "line": 18, |
12 | "column": 3 | 12 | "column": 3 |
13 | } | 13 | } |
14 | }, | 14 | }, |
@@ -17,11 +17,11 @@ | |||
17 | "defaultMessage": "!!!Get started", | 17 | "defaultMessage": "!!!Get started", |
18 | "file": "src/components/services/content/Services.js", | 18 | "file": "src/components/services/content/Services.js", |
19 | "start": { | 19 | "start": { |
20 | "line": 18, | 20 | "line": 19, |
21 | "column": 14 | 21 | "column": 14 |
22 | }, | 22 | }, |
23 | "end": { | 23 | "end": { |
24 | "line": 21, | 24 | "line": 22, |
25 | "column": 3 | 25 | "column": 3 |
26 | } | 26 | } |
27 | }, | 27 | }, |
@@ -30,11 +30,24 @@ | |||
30 | "defaultMessage": "!!!Please login to use Ferdi.", | 30 | "defaultMessage": "!!!Please login to use Ferdi.", |
31 | "file": "src/components/services/content/Services.js", | 31 | "file": "src/components/services/content/Services.js", |
32 | "start": { | 32 | "start": { |
33 | "line": 22, | 33 | "line": 23, |
34 | "column": 9 | 34 | "column": 9 |
35 | }, | 35 | }, |
36 | "end": { | 36 | "end": { |
37 | "line": 25, | 37 | "line": 26, |
38 | "column": 3 | ||
39 | } | ||
40 | }, | ||
41 | { | ||
42 | "id": "services.serverless", | ||
43 | "defaultMessage": "!!!Use Ferdi without an Account", | ||
44 | "file": "src/components/services/content/Services.js", | ||
45 | "start": { | ||
46 | "line": 27, | ||
47 | "column": 14 | ||
48 | }, | ||
49 | "end": { | ||
50 | "line": 30, | ||
38 | "column": 3 | 51 | "column": 3 |
39 | } | 52 | } |
40 | }, | 53 | }, |
@@ -43,11 +56,11 @@ | |||
43 | "defaultMessage": "!!!Optionally, you can change your Ferdi server by clicking the cog in the bottom left corner.", | 56 | "defaultMessage": "!!!Optionally, you can change your Ferdi server by clicking the cog in the bottom left corner.", |
44 | "file": "src/components/services/content/Services.js", | 57 | "file": "src/components/services/content/Services.js", |
45 | "start": { | 58 | "start": { |
46 | "line": 26, | 59 | "line": 31, |
47 | "column": 14 | 60 | "column": 14 |
48 | }, | 61 | }, |
49 | "end": { | 62 | "end": { |
50 | "line": 29, | 63 | "line": 34, |
51 | "column": 3 | 64 | "column": 3 |
52 | } | 65 | } |
53 | } | 66 | } |
diff --git a/src/index.js b/src/index.js index 2ee404c0b..338a8e795 100644 --- a/src/index.js +++ b/src/index.js | |||
@@ -34,6 +34,9 @@ import { isPositionValid } from './electron/windowUtils'; | |||
34 | import { appId } from './package.json'; // eslint-disable-line import/no-unresolved | 34 | import { appId } from './package.json'; // eslint-disable-line import/no-unresolved |
35 | import './electron/exception'; | 35 | import './electron/exception'; |
36 | 36 | ||
37 | // Start internal server | ||
38 | import './server/start'; | ||
39 | |||
37 | import { | 40 | import { |
38 | DEFAULT_APP_SETTINGS, | 41 | DEFAULT_APP_SETTINGS, |
39 | DEFAULT_WINDOW_OPTIONS, | 42 | DEFAULT_WINDOW_OPTIONS, |
diff --git a/src/styles/services.scss b/src/styles/services.scss index 5acf92d2c..ef1097791 100644 --- a/src/styles/services.scss +++ b/src/styles/services.scss | |||
@@ -64,7 +64,7 @@ | |||
64 | margin: 25px 0 40px; | 64 | margin: 25px 0 40px; |
65 | } | 65 | } |
66 | 66 | ||
67 | a.button, | 67 | .button, |
68 | button { margin: 40px 0 20px; } | 68 | button { margin: 40px 0 20px; } |
69 | } | 69 | } |
70 | 70 | ||
diff --git a/src/styles/type.scss b/src/styles/type.scss index 135d32da0..1b3a905ef 100644 --- a/src/styles/type.scss +++ b/src/styles/type.scss | |||
@@ -33,7 +33,7 @@ p { | |||
33 | 33 | ||
34 | strong { font-weight: bold; } | 34 | strong { font-weight: bold; } |
35 | 35 | ||
36 | a { | 36 | a, button { |
37 | color: $theme-text-color; | 37 | color: $theme-text-color; |
38 | text-decoration: none; | 38 | text-decoration: none; |
39 | 39 | ||
@@ -47,6 +47,7 @@ a { | |||
47 | position: relative; | 47 | position: relative; |
48 | text-align: center; | 48 | text-align: center; |
49 | transition: background .5s, color .5s; | 49 | transition: background .5s, color .5s; |
50 | cursor: pointer; | ||
50 | 51 | ||
51 | &:hover { | 52 | &:hover { |
52 | background: darken($theme-brand-primary, 5%); | 53 | background: darken($theme-brand-primary, 5%); |
diff --git a/src/styles/welcome.scss b/src/styles/welcome.scss index b517431f0..c1f85391e 100644 --- a/src/styles/welcome.scss +++ b/src/styles/welcome.scss | |||
@@ -48,6 +48,7 @@ | |||
48 | .button { | 48 | .button { |
49 | border-color: #FFF; | 49 | border-color: #FFF; |
50 | color: #FFF; | 50 | color: #FFF; |
51 | cursor: pointer; | ||
51 | 52 | ||
52 | &:hover { | 53 | &:hover { |
53 | background: #FFF; | 54 | background: #FFF; |