summaryrefslogtreecommitdiff
path: root/web-ui/src/backup_account/backup_email
diff options
context:
space:
mode:
Diffstat (limited to 'web-ui/src/backup_account/backup_email')
-rw-r--r--web-ui/src/backup_account/backup_email/backup_email.js15
-rw-r--r--web-ui/src/backup_account/backup_email/backup_email.scss75
-rw-r--r--web-ui/src/backup_account/backup_email/backup_email.spec.js12
3 files changed, 98 insertions, 4 deletions
diff --git a/web-ui/src/backup_account/backup_email/backup_email.js b/web-ui/src/backup_account/backup_email/backup_email.js
index 3d5df1b0..05cba35e 100644
--- a/web-ui/src/backup_account/backup_email/backup_email.js
+++ b/web-ui/src/backup_account/backup_email/backup_email.js
@@ -21,6 +21,7 @@ import SubmitButton from 'src/common/submit_button/submit_button';
import InputField from 'src/common/input_field/input_field';
import validator from 'validator';
+import './backup_email.scss';
export class BackupEmail extends React.Component {
@@ -39,16 +40,23 @@ export class BackupEmail extends React.Component {
});
}
+ submitHandler = (event) => {
+ event.preventDefault();
+ if (typeof this.props.onSubmit === 'function') {
+ this.props.onSubmit();
+ }
+ }
+
render() {
const t = this.props.t;
return (
- <div className='container'>
+ <div className='container backup-email-container'>
<img
className='backup-account-image'
src='/public/images/forgot-my-password.svg'
alt={t('backup-account.backup-email.image-description')}
/>
- <form>
+ <form onSubmit={this.submitHandler}>
<h1>{t('backup-account.backup-email.title')}</h1>
<p>{t('backup-account.backup-email.paragraph1')}</p>
<p>{t('backup-account.backup-email.paragraph2')}</p>
@@ -68,7 +76,8 @@ export class BackupEmail extends React.Component {
BackupEmail.propTypes = {
- t: React.PropTypes.func.isRequired
+ t: React.PropTypes.func.isRequired,
+ onSubmit: React.PropTypes.func.isRequired
};
export default translate('', { wait: true })(BackupEmail);
diff --git a/web-ui/src/backup_account/backup_email/backup_email.scss b/web-ui/src/backup_account/backup_email/backup_email.scss
new file mode 100644
index 00000000..a7e09ba3
--- /dev/null
+++ b/web-ui/src/backup_account/backup_email/backup_email.scss
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 2017 ThoughtWorks, Inc.
+ *
+ * Pixelated is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Pixelated is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with Pixelated. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+@import "~scss/vendor/reset";
+@import "~scss/base/colors";
+@import "~scss/base/fonts";
+
+
+form {
+ width: 100%;
+}
+
+.backup-email-container {
+ width: 84%;
+ padding: 6% 5%;
+ display: flex;
+ align-items: flex-start;
+ flex-direction: column;
+}
+
+.backup-account-image {
+ width: 50%;
+ height: 100%;
+ align-self: center;
+}
+
+@media only screen and (min-width : 500px) {
+ form {
+ display: flex;
+ flex-direction: column;
+
+ .input-field-group, .submit-button, .link-content {
+ width: 70%;
+ align-self: center;
+ }
+ }
+}
+
+@media only screen and (min-width : 960px) {
+ .backup-email-container{
+ width: 60%;
+ max-width: 700px;
+ padding: 3em;
+ align-items: flex-start;
+ flex-direction: row;
+
+ form {
+ margin-left: 2.5em;
+ min-height: 492px;
+
+ .input-field-group, .submit-button, .link-content {
+ width: 300px;
+ align-self: flex-start;
+ }
+ }
+ }
+
+ .backup-account-image {
+ width: 300px;
+ }
+}
diff --git a/web-ui/src/backup_account/backup_email/backup_email.spec.js b/web-ui/src/backup_account/backup_email/backup_email.spec.js
index b2b297f4..8732003b 100644
--- a/web-ui/src/backup_account/backup_email/backup_email.spec.js
+++ b/web-ui/src/backup_account/backup_email/backup_email.spec.js
@@ -5,9 +5,10 @@ import { BackupEmail } from 'src/backup_account/backup_email/backup_email';
describe('BackupEmail', () => {
let page;
+ let mockTranslations;
beforeEach(() => {
- const mockTranslations = key => key;
+ mockTranslations = key => key;
page = shallow(<BackupEmail t={mockTranslations} />);
});
@@ -23,6 +24,15 @@ describe('BackupEmail', () => {
expect(page.find('SubmitButton').props().buttonText).toEqual('backup-account.backup-email.button');
});
+ it('form submit should call parameter custom submit', () => {
+ const mockOnSubmit = expect.createSpy();
+ const event = { preventDefault() {} };
+ page = shallow(<BackupEmail t={mockTranslations} onSubmit={mockOnSubmit} />);
+
+ page.instance().submitHandler(event);
+ expect(mockOnSubmit).toHaveBeenCalled();
+ });
+
describe('Email validation', () => {
let pageInstance;