You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ak...@apache.org on 2018/04/25 09:14:17 UTC
[1/2] ignite git commit: IGNITE-8370 Web Console: Split "Sign In"
page to three separate pages.
Repository: ignite
Updated Branches:
refs/heads/master 8a0ed0e3b -> 41699c31c
IGNITE-8370 Web Console: Split "Sign In" page to three separate pages.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/2f8df263
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/2f8df263
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/2f8df263
Branch: refs/heads/master
Commit: 2f8df26367bf81058aefa0bdd6c5b234d849250c
Parents: 8a0ed0e
Author: Ilya Borisov <kl...@gmail.com>
Authored: Wed Apr 25 16:13:19 2018 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Wed Apr 25 16:13:19 2018 +0700
----------------------------------------------------------------------
.../testcafe/fixtures/auth/forgot-password.js | 22 +--
.../e2e/testcafe/fixtures/auth/logout.js | 5 +-
.../e2e/testcafe/fixtures/auth/signup.js | 14 +-
.../e2e/testcafe/page-models/PageSignIn.js | 77 --------
.../testcafe/page-models/pageForgotPassword.js | 24 +++
.../e2e/testcafe/page-models/pageSignin1.js | 32 +++
.../e2e/testcafe/page-models/pageSignup.js | 48 +++++
modules/web-console/e2e/testcafe/roles.js | 4 +-
modules/web-console/frontend/app/app.js | 8 +-
.../page-forgot-password/component.js | 30 +++
.../page-forgot-password/controller.js | 57 ++++++
.../components/page-forgot-password/index.js | 28 +++
.../app/components/page-forgot-password/run.js | 48 +++++
.../components/page-forgot-password/style.scss | 54 +++++
.../page-forgot-password/template.pug | 50 +++++
.../components/page-forgot-password/types.ts | 24 +++
.../app/components/page-landing/template.pug | 4 +-
.../app/components/page-signin/component.js | 26 +++
.../app/components/page-signin/controller.js | 107 ++--------
.../app/components/page-signin/index.js | 38 +---
.../frontend/app/components/page-signin/run.js | 53 +++++
.../app/components/page-signin/style.scss | 49 +++--
.../app/components/page-signin/template.pug | 195 ++++---------------
.../app/components/page-signin/types.ts | 26 +++
.../app/components/page-signup/component.js | 28 +++
.../app/components/page-signup/controller.js | 60 ++++++
.../app/components/page-signup/index.js | 28 +++
.../frontend/app/components/page-signup/run.js | 35 ++++
.../app/components/page-signup/style.scss | 61 ++++++
.../app/components/page-signup/template.pug | 122 ++++++++++++
.../app/components/page-signup/types.ts | 36 ++++
.../app/primitives/form-field/dropdown.pug | 1 +
modules/web-console/frontend/app/types/index.ts | 33 ++++
.../frontend/public/stylesheets/style.scss | 23 ---
34 files changed, 1020 insertions(+), 430 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f8df263/modules/web-console/e2e/testcafe/fixtures/auth/forgot-password.js
----------------------------------------------------------------------
diff --git a/modules/web-console/e2e/testcafe/fixtures/auth/forgot-password.js b/modules/web-console/e2e/testcafe/fixtures/auth/forgot-password.js
index 6b151ed..27ac2db 100644
--- a/modules/web-console/e2e/testcafe/fixtures/auth/forgot-password.js
+++ b/modules/web-console/e2e/testcafe/fixtures/auth/forgot-password.js
@@ -16,13 +16,12 @@
*/
import { dropTestDB, resolveUrl, insertTestUser } from '../../envtools';
-import {PageSignIn} from '../../page-models/PageSignIn';
+import {PageSignIn} from '../../page-models/pageSignin1';
import {errorNotification} from '../../components/notifications';
-
-const page = new PageSignIn();
+import {pageForgotPassword as page} from '../../page-models/pageForgotPassword';
fixture('Password reset')
- .page(resolveUrl('/signin'))
+ .page(resolveUrl('/forgot-password'))
.before(async() => {
await dropTestDB();
await insertTestUser();
@@ -33,26 +32,23 @@ fixture('Password reset')
test('Incorrect email', async(t) => {
await t
- .click(page.showForgotPasswordButton)
- .typeText(page.forgotPassword.email.control, 'aa')
- .expect(page.forgotPassword.email.getError('email').exists).ok('Marks field as invalid')
+ .typeText(page.email.control, 'aa')
+ .expect(page.email.getError('email').exists).ok('Marks field as invalid')
.expect(page.remindPasswordButton.getAttribute('disabled')).ok('Disables submit button');
});
test('Unknown email', async(t) => {
await t
- .click(page.showForgotPasswordButton)
- .typeText(page.forgotPassword.email.control, 'nonexisting@mail.com', {replace: true})
+ .typeText(page.email.control, 'nonexisting@mail.com', {replace: true})
.click(page.remindPasswordButton)
.expect(errorNotification.withText('Account with that email address does not exists!').exists).ok('Shows global error notification')
- .expect(page.forgotPassword.email.getError('server').exists).ok('Marks input as server-invalid');
+ .expect(page.email.getError('server').exists).ok('Marks input as server-invalid');
});
// TODO: IGNITE-8028 Implement this test as unit test.
test.skip('Successful reset', async(t) => {
await t
- .click(page.showForgotPasswordButton)
- .typeText(page.forgotPassword.email.control, 'a@a', {replace: true})
+ .typeText(page.email.control, 'a@a', {replace: true})
.click(page.remindPasswordButton)
- .expect(page.forgotPassword.email.getError('server').exists).notOk('No errors happen');
+ .expect(page.email.getError('server').exists).notOk('No errors happen');
});
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f8df263/modules/web-console/e2e/testcafe/fixtures/auth/logout.js
----------------------------------------------------------------------
diff --git a/modules/web-console/e2e/testcafe/fixtures/auth/logout.js b/modules/web-console/e2e/testcafe/fixtures/auth/logout.js
index 196c03f..5cad60f 100644
--- a/modules/web-console/e2e/testcafe/fixtures/auth/logout.js
+++ b/modules/web-console/e2e/testcafe/fixtures/auth/logout.js
@@ -18,10 +18,9 @@
import {dropTestDB, resolveUrl, insertTestUser} from 'envtools';
import {createRegularUser} from '../../roles';
import {userMenu} from '../../components/userMenu';
-import {PageSignIn} from '../../page-models/PageSignIn';
+import {pageSignin} from '../../page-models/pageSignin1';
const user = createRegularUser();
-const pageSignIn = new PageSignIn();
fixture('Logout')
.before(async() => {
@@ -35,5 +34,5 @@ fixture('Logout')
test('Successful logout', async(t) => {
await t.useRole(user).navigateTo(resolveUrl('/settings/profile'));
await userMenu.clickOption('Log out');
- await t.expect(pageSignIn._selector.exists).ok('Goes to sign in page after logout');
+ await t.expect(pageSignin.selector.exists).ok('Goes to sign in page after logout');
});
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f8df263/modules/web-console/e2e/testcafe/fixtures/auth/signup.js
----------------------------------------------------------------------
diff --git a/modules/web-console/e2e/testcafe/fixtures/auth/signup.js b/modules/web-console/e2e/testcafe/fixtures/auth/signup.js
index 065bff9..f0951d9 100644
--- a/modules/web-console/e2e/testcafe/fixtures/auth/signup.js
+++ b/modules/web-console/e2e/testcafe/fixtures/auth/signup.js
@@ -16,14 +16,12 @@
*/
import {dropTestDB, resolveUrl, insertTestUser} from '../../envtools';
-import {PageSignIn} from '../../page-models/PageSignIn';
+import {pageSignup as page} from '../../page-models/pageSignup';
import {errorNotification} from '../../components/notifications';
import {userMenu} from '../../components/userMenu';
-const page = new PageSignIn();
-
fixture('Signup')
- .page(resolveUrl('/signin'))
+ .page(resolveUrl('/signup'))
.before(async() => {
await dropTestDB();
await insertTestUser();
@@ -45,9 +43,9 @@ test('Local validation', async(t) => {
country: 'Brazil'
});
await t
- .expect(page.signup.email.getError('email').exists).ok()
- .expect(page.signup.passwordConfirm.getError('mismatch').exists).ok()
- .expect(page.signup.firstName.getError('required').exists).ok()
+ .expect(page.email.getError('email').exists).ok()
+ .expect(page.passwordConfirm.getError('mismatch').exists).ok()
+ .expect(page.firstName.getError('required').exists).ok()
.expect(isButtonDisabled).ok('Button disabled with invalid fields');
await page.fillSignupForm({
email: 'foobar@bar.baz',
@@ -73,7 +71,7 @@ test('Server validation', async(t) => {
await t
.click(page.signupButton)
.expect(errorNotification.withText('A user with the given username is already registered').exists).ok('Shows global error')
- .expect(page.signup.email.getError('server').exists).ok('Marks email input as server-invalid');
+ .expect(page.email.getError('server').exists).ok('Marks email input as server-invalid');
});
test('Successful signup', async(t) => {
await page.fillSignupForm({
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f8df263/modules/web-console/e2e/testcafe/page-models/PageSignIn.js
----------------------------------------------------------------------
diff --git a/modules/web-console/e2e/testcafe/page-models/PageSignIn.js b/modules/web-console/e2e/testcafe/page-models/PageSignIn.js
deleted file mode 100644
index 1712cd69f..0000000
--- a/modules/web-console/e2e/testcafe/page-models/PageSignIn.js
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import {Selector, t} from 'testcafe';
-import { resolveUrl } from '../envtools';
-import {AngularJSSelector} from 'testcafe-angular-selectors';
-import {CustomFormField} from '../components/FormField';
-
-export class PageSignIn {
- constructor() {
- this._selector = Selector('page-sign-in');
- this.signin = {
- email: new CustomFormField({model: '$ctrl.data.signin.email'}),
- password: new CustomFormField({model: '$ctrl.data.signin.password'})
- };
- this.forgotPassword = {
- email: new CustomFormField({model: '$ctrl.data.remindPassword.email'})
- };
- this.signup = {
- email: new CustomFormField({model: '$ctrl.data.signup.email'}),
- password: new CustomFormField({model: '$ctrl.data.signup.password'}),
- passwordConfirm: new CustomFormField({model: 'confirm'}),
- firstName: new CustomFormField({model: '$ctrl.data.signup.firstName'}),
- lastName: new CustomFormField({model: '$ctrl.data.signup.lastName'}),
- company: new CustomFormField({model: '$ctrl.data.signup.company'}),
- country: new CustomFormField({model: '$ctrl.data.signup.country'})
- };
- this.signinButton = Selector('#signin_submit');
- this.signupButton = Selector('#signup_submit');
- this.showForgotPasswordButton = Selector('#forgot_show');
- this.remindPasswordButton = Selector('#forgot_submit');
- }
-
- async open() {
- await t.navigateTo(resolveUrl('/signin'));
- }
-
- async login(email, password) {
- return await t
- .typeText(this.signin.email.control, email)
- .typeText(this.signin.password.control, password)
- .click(this.signinButton);
- }
-
- async fillSignupForm({
- email,
- password,
- passwordConfirm,
- firstName,
- lastName,
- company,
- country
- }) {
- await t
- .typeText(this.signup.email.control, email, {replace: true})
- .typeText(this.signup.password.control, password, {replace: true})
- .typeText(this.signup.passwordConfirm.control, passwordConfirm, {replace: true})
- .typeText(this.signup.firstName.control, firstName, {replace: true})
- .typeText(this.signup.lastName.control, lastName, {replace: true})
- .typeText(this.signup.company.control, company, {replace: true});
- await this.signup.country.selectOption(country);
- }
-}
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f8df263/modules/web-console/e2e/testcafe/page-models/pageForgotPassword.js
----------------------------------------------------------------------
diff --git a/modules/web-console/e2e/testcafe/page-models/pageForgotPassword.js b/modules/web-console/e2e/testcafe/page-models/pageForgotPassword.js
new file mode 100644
index 0000000..3b4160a
--- /dev/null
+++ b/modules/web-console/e2e/testcafe/page-models/pageForgotPassword.js
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {Selector} from 'testcafe';
+import {CustomFormField} from '../components/FormField';
+
+export const pageForgotPassword = {
+ email: new CustomFormField({model: '$ctrl.data.email'}),
+ remindPasswordButton: Selector('button').withText('Send it to me')
+};
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f8df263/modules/web-console/e2e/testcafe/page-models/pageSignin1.js
----------------------------------------------------------------------
diff --git a/modules/web-console/e2e/testcafe/page-models/pageSignin1.js b/modules/web-console/e2e/testcafe/page-models/pageSignin1.js
new file mode 100644
index 0000000..57031b6
--- /dev/null
+++ b/modules/web-console/e2e/testcafe/page-models/pageSignin1.js
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {Selector, t} from 'testcafe';
+import {CustomFormField} from '../components/FormField';
+
+export const pageSignin = {
+ email: new CustomFormField({model: '$ctrl.data.email'}),
+ password: new CustomFormField({model: '$ctrl.data.password'}),
+ signinButton: Selector('button').withText('Sign In'),
+ selector: Selector('page-signin'),
+ async login(email, password) {
+ return await t
+ .typeText(this.email.control, email)
+ .typeText(this.password.control, password)
+ .click(this.signinButton);
+ }
+};
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f8df263/modules/web-console/e2e/testcafe/page-models/pageSignup.js
----------------------------------------------------------------------
diff --git a/modules/web-console/e2e/testcafe/page-models/pageSignup.js b/modules/web-console/e2e/testcafe/page-models/pageSignup.js
new file mode 100644
index 0000000..c380abe
--- /dev/null
+++ b/modules/web-console/e2e/testcafe/page-models/pageSignup.js
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {Selector, t} from 'testcafe';
+import {CustomFormField} from '../components/FormField';
+
+export const pageSignup = {
+ email: new CustomFormField({model: '$ctrl.data.email'}),
+ password: new CustomFormField({model: '$ctrl.data.password'}),
+ passwordConfirm: new CustomFormField({model: 'confirm'}),
+ firstName: new CustomFormField({model: '$ctrl.data.firstName'}),
+ lastName: new CustomFormField({model: '$ctrl.data.lastName'}),
+ company: new CustomFormField({model: '$ctrl.data.company'}),
+ country: new CustomFormField({model: '$ctrl.data.country'}),
+ signupButton: Selector('button').withText('Sign Up'),
+ async fillSignupForm({
+ email,
+ password,
+ passwordConfirm,
+ firstName,
+ lastName,
+ company,
+ country
+ }) {
+ await t
+ .typeText(this.email.control, email, {replace: true})
+ .typeText(this.password.control, password, {replace: true})
+ .typeText(this.passwordConfirm.control, passwordConfirm, {replace: true})
+ .typeText(this.firstName.control, firstName, {replace: true})
+ .typeText(this.lastName.control, lastName, {replace: true})
+ .typeText(this.company.control, company, {replace: true});
+ await this.country.selectOption(country);
+ }
+};
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f8df263/modules/web-console/e2e/testcafe/roles.js
----------------------------------------------------------------------
diff --git a/modules/web-console/e2e/testcafe/roles.js b/modules/web-console/e2e/testcafe/roles.js
index 5f584b2..5d9bfcc 100644
--- a/modules/web-console/e2e/testcafe/roles.js
+++ b/modules/web-console/e2e/testcafe/roles.js
@@ -17,7 +17,7 @@
const { Role, t } = require('testcafe');
import { resolveUrl } from './envtools';
-const { PageSignIn } = require('./page-models/PageSignIn');
+import {pageSignin as page} from './page-models/pageSignin1';
export const createRegularUser = () => {
return new Role(resolveUrl('/signin'), async() => {
@@ -25,8 +25,6 @@ export const createRegularUser = () => {
// Disable "Getting started" modal.
await t.eval(() => window.localStorage.showGettingStarted = 'false');
-
- const page = new PageSignIn();
await page.login('a@a', 'a');
});
};
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f8df263/modules/web-console/frontend/app/app.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/app.js b/modules/web-console/frontend/app/app.js
index 81a5bc7..350005f 100644
--- a/modules/web-console/frontend/app/app.js
+++ b/modules/web-console/frontend/app/app.js
@@ -136,7 +136,6 @@ import breadcrumbs from './components/breadcrumbs';
import panelCollapsible from './components/panel-collapsible';
import clusterSelector from './components/cluster-selector';
import connectedClusters from './components/connected-clusters';
-import pageSignIn from './components/page-signin';
import pageLanding from './components/page-landing';
import passwordVisibility from './components/password-visibility';
import progressLine from './components/progress-line';
@@ -144,6 +143,9 @@ import progressLine from './components/progress-line';
import pageProfile from './components/page-profile';
import pagePasswordChanged from './components/page-password-changed';
import pagePasswordReset from './components/page-password-reset';
+import pageSignup from './components/page-signup';
+import pageSignin from './components/page-signin';
+import pageForgotPassword from './components/page-forgot-password';
import igniteServices from './services';
@@ -234,10 +236,12 @@ angular.module('ignite-console', [
igniteListOfRegisteredUsers.name,
pageProfile.name,
exposeInput.name,
- pageSignIn.name,
pageLanding.name,
pagePasswordChanged.name,
pagePasswordReset.name,
+ pageSignup.name,
+ pageSignin.name,
+ pageForgotPassword.name,
uiAceJava.name,
uiAceSpring.name,
breadcrumbs.name,
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f8df263/modules/web-console/frontend/app/components/page-forgot-password/component.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/components/page-forgot-password/component.js b/modules/web-console/frontend/app/components/page-forgot-password/component.js
new file mode 100644
index 0000000..8c70e73
--- /dev/null
+++ b/modules/web-console/frontend/app/components/page-forgot-password/component.js
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import template from './template.pug';
+import controller from './controller';
+
+import './style.scss';
+
+/** @type {ng.IComponentOptions} */
+export default {
+ controller,
+ template,
+ bindings: {
+ email: '<?'
+ }
+};
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f8df263/modules/web-console/frontend/app/components/page-forgot-password/controller.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/components/page-forgot-password/controller.js b/modules/web-console/frontend/app/components/page-forgot-password/controller.js
new file mode 100644
index 0000000..92e8541
--- /dev/null
+++ b/modules/web-console/frontend/app/components/page-forgot-password/controller.js
@@ -0,0 +1,57 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export default class PageForgotPassword {
+ /** @type {string} Optional email to populate form with */
+ email;
+ /** @type {import('./types').IForgotPasswordFormController} */
+ form;
+ /** @type {import('./types').IForgotPasswordData} */
+ data = {email: null};
+ /** @type {string} */
+ serverError = null;
+
+ static $inject = ['Auth', 'IgniteMessages'];
+
+ /**
+ * @param {import('app/modules/user/Auth.service').default} Auth
+ */
+ constructor(Auth, IgniteMessages) {
+ this.Auth = Auth;
+ this.IgniteMessages = IgniteMessages;
+ }
+ /** @param {import('./types').IForgotPasswordFormController} form */
+ canSubmitForm(form) {
+ return form.$error.server ? true : !form.$invalid;
+ }
+ $postLink() {
+ this.form.email.$validators.server = () => !this.serverError;
+ }
+ /**
+ * @param {{email: ng.IChangesObject<string>}} changes
+ */
+ $onChanges(changes) {
+ if ('email' in changes) this.data.email = changes.email.currentValue;
+ }
+ remindPassword() {
+ return this.Auth.remindPassword(this.data.email).catch((res) => {
+ this.IgniteMessages.showError(null, res.data);
+ this.serverError = res.data;
+ this.form.email.$validate();
+ });
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f8df263/modules/web-console/frontend/app/components/page-forgot-password/index.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/components/page-forgot-password/index.js b/modules/web-console/frontend/app/components/page-forgot-password/index.js
new file mode 100644
index 0000000..dec8fd9
--- /dev/null
+++ b/modules/web-console/frontend/app/components/page-forgot-password/index.js
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import angular from 'angular';
+import component from './component';
+import {registerState} from './run';
+
+export default angular
+ .module('ignite-console.page-forgot-password', [
+ 'ui.router',
+ 'ignite-console.user'
+ ])
+ .component('pageForgotPassword', component)
+ .run(registerState);
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f8df263/modules/web-console/frontend/app/components/page-forgot-password/run.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/components/page-forgot-password/run.js b/modules/web-console/frontend/app/components/page-forgot-password/run.js
new file mode 100644
index 0000000..c7ee6a6
--- /dev/null
+++ b/modules/web-console/frontend/app/components/page-forgot-password/run.js
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * @param {import("@uirouter/angularjs").UIRouter} $uiRouter
+ */
+export function registerState($uiRouter) {
+ /** @type {import("app/types").IIgniteNg1StateDeclaration} */
+ const state = {
+ name: 'forgotPassword',
+ url: '/forgot-password',
+ component: 'pageForgotPassword',
+ unsaved: true,
+ tfMetaTags: {
+ title: 'Forgot Password'
+ },
+ resolve: [
+ {
+ token: 'email',
+ deps: ['$uiRouter'],
+ /**
+ * @param {import('@uirouter/angularjs').UIRouter} $uiRouter
+ */
+ resolveFn($uiRouter) {
+ return $uiRouter.stateService.transition.targetState().params().email;
+ }
+ }
+ ]
+ };
+
+ $uiRouter.stateRegistry.register(state);
+}
+
+registerState.$inject = ['$uiRouter'];
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f8df263/modules/web-console/frontend/app/components/page-forgot-password/style.scss
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/components/page-forgot-password/style.scss b/modules/web-console/frontend/app/components/page-forgot-password/style.scss
new file mode 100644
index 0000000..8122c34
--- /dev/null
+++ b/modules/web-console/frontend/app/components/page-forgot-password/style.scss
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+page-forgot-password {
+ display: flex;
+ flex-direction: column;
+ flex: 1 0 auto;
+
+ section {
+ margin-left: auto;
+ margin-right: auto;
+ width: 530px;
+
+ h3 {
+ font-size: 38px;
+ font-weight: 300;
+ margin: 30px 0 30px;
+ }
+
+ p {
+ margin-bottom: 20px;
+ }
+
+ .form-field {
+ margin: 10px 0;
+ }
+
+ .form-footer {
+ padding: 15px 0;
+ text-align: right;
+ border-top: 1px solid #e5e5e5;
+ display: flex;
+ align-items: center;
+
+ .btn-ignite {
+ margin-left: auto;
+ }
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f8df263/modules/web-console/frontend/app/components/page-forgot-password/template.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/components/page-forgot-password/template.pug b/modules/web-console/frontend/app/components/page-forgot-password/template.pug
new file mode 100644
index 0000000..6a11baf
--- /dev/null
+++ b/modules/web-console/frontend/app/components/page-forgot-password/template.pug
@@ -0,0 +1,50 @@
+//-
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+include /app/helpers/jade/mixins
+
+web-console-header
+ web-console-header-left
+ ignite-header-title
+
+.container.body-container
+ section
+ - const form = '$ctrl.form'
+ h3 Forgot password?
+ p That's ok! Simply enter your email below and a reset password link will be sent to you via email. You can then follow that link and select a new password.
+ form(name=form novalidate ng-submit='$ctrl.remindPassword()')
+ +form-field__email({
+ label: 'Email:',
+ model: '$ctrl.data.email',
+ name: '"email"',
+ placeholder: 'Input email',
+ required: true
+ })(
+ ng-model-options='{allowInvalid: true}'
+ autocomplete='email'
+ ignite-auto-focus
+ tabindex='0'
+ )
+ +form-field__error({error: 'server', message: `{{$ctrl.serverError}}`})
+ footer.form-footer
+ a(ui-sref='signin') Back to sign in
+ button.btn-ignite.btn-ignite--primary(
+ tabindex='1'
+ type='submit'
+ ng-disabled=`!$ctrl.canSubmitForm(${form})`
+ ) Send it to me
+
+web-console-footer
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f8df263/modules/web-console/frontend/app/components/page-forgot-password/types.ts
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/components/page-forgot-password/types.ts b/modules/web-console/frontend/app/components/page-forgot-password/types.ts
new file mode 100644
index 0000000..cbcff81
--- /dev/null
+++ b/modules/web-console/frontend/app/components/page-forgot-password/types.ts
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export interface IForgotPasswordData {
+ email: string
+}
+
+export interface IForgotPasswordFormController extends ng.IFormController {
+ email: ng.INgModelController
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f8df263/modules/web-console/frontend/app/components/page-landing/template.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/components/page-landing/template.pug b/modules/web-console/frontend/app/components/page-landing/template.pug
index a1ce4f7..7b5b1cc 100644
--- a/modules/web-console/frontend/app/components/page-landing/template.pug
+++ b/modules/web-console/frontend/app/components/page-landing/template.pug
@@ -26,7 +26,7 @@ section.intro-container-wrapper
h1 Web Console
h2 An Interactive Configuration Wizard and Management Tool for Apache™ Ignite®
p It provides an interactive configuration wizard which helps you create and download configuration files and code snippets for your Apache Ignite projects. Additionally, the tool allows you to automatically load SQL metadata from any RDBMS, run SQL queries on your in-memory cache as well as view execution plans, in-memory schema, and streaming charts.
- a#signup_show.btn.btn-lg.btn-primary.btn-custom(ui-sref='signin') Try Now
+ a#signup_show.btn.btn-lg.btn-primary.btn-custom(ui-sref='signup') Sign Up
.col-lg-6.col-md-6.col-sm-6.col-xs-12
ui-carousel(slides='$ctrl.images' autoplay='true' slides-to-show='1' arrows='false')
carousel-item
@@ -61,6 +61,6 @@ section.features-container-wrapper
h3 Manage The Web Console users
p With The Web Console you can have accounts with different roles.
.align-center.text-center
- a.btn.btn-lg.btn-primary.btn-custom(ui-sref='signin') Get Started
+ a.btn.btn-lg.btn-primary.btn-custom(ui-sref='signup') Get Started
web-console-footer
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f8df263/modules/web-console/frontend/app/components/page-signin/component.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/components/page-signin/component.js b/modules/web-console/frontend/app/components/page-signin/component.js
new file mode 100644
index 0000000..968ff39
--- /dev/null
+++ b/modules/web-console/frontend/app/components/page-signin/component.js
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import template from './template.pug';
+import controller from './controller';
+import './style.scss';
+
+/** @type {ng.IComponentOptions} */
+export default {
+ controller,
+ template
+};
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f8df263/modules/web-console/frontend/app/components/page-signin/controller.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/components/page-signin/controller.js b/modules/web-console/frontend/app/components/page-signin/controller.js
index fb57620..b13cf4b 100644
--- a/modules/web-console/frontend/app/components/page-signin/controller.js
+++ b/modules/web-console/frontend/app/components/page-signin/controller.js
@@ -15,107 +15,42 @@
* limitations under the License.
*/
-// eslint-disable-next-line
-import {default as AuthService} from 'app/modules/user/Auth.service';
-
export default class {
- /** @type {ng.IFormController} */
- form_signup;
- /** @type {ng.IFormController} */
- form_signin;
- /** @type {ng.IFormController} */
- form_forgot;
+ /** @type {import('./types').ISiginData} */
+ data = {
+ email: null,
+ password: null
+ };
+ /** @type {import('./types').ISigninFormController} */
+ form;
+ /** @type {string} */
+ serverError = null;
- static $inject = ['IgniteFocus', 'IgniteCountries', 'Auth', 'IgniteMessages'];
+ static $inject = ['Auth', 'IgniteMessages'];
/**
- * @param {AuthService} Auth
+ * @param {import('app/modules/user/Auth.service').default} Auth
*/
- constructor(Focus, Countries, Auth, IgniteMessages) {
+ constructor(Auth, IgniteMessages) {
this.Auth = Auth;
this.IgniteMessages = IgniteMessages;
- this.countries = Countries.getAll();
-
- Focus.move('user_email');
- }
- $onInit() {
- const data = this.data = {
- signup: {
- email: null,
- password: null,
- firstName: null,
- lastName: null,
- company: null,
- country: null
- },
- signin: {
- /** @type {string} */
- email: null,
- /** @type {string} */
- password: null
- },
- remindPassword: {
- /**
- * Explicitly mirrors signin email so user won't have to type it twice
- * @type {string}
- */
- get email() {
- return data.signin.email;
- },
- set email(value) {
- data.signin.email = value;
- }
- }
- };
- /** @type {('signin'|'remindPassword')} */
- this.activeForm = 'signin';
- /** @type {{signup: string, signin: string, remindPassword: string}} */
- this.serverErrors = {
- signup: null,
- signin: null,
- remindPassword: null
- };
- }
- get isSigninOpened() {
- return this.activeForm === 'signin';
}
- get isRemindPasswordOpened() {
- return this.activeForm === 'remindPassword';
- }
- /** Toggles between signin and remind password forms */
- toggleActiveForm() {
- this.activeForm = this.activeForm === 'signin' ? 'remindPassword' : 'signin';
- }
- /** @param {ng.IFormController} form */
+
+ /** @param {import('./types').ISigninFormController} form */
canSubmitForm(form) {
return form.$error.server ? true : !form.$invalid;
}
+
$postLink() {
- this.form_signup.signupEmail.$validators.server = () => !this.serverErrors.signup;
- this.form_signin.signinEmail.$validators.server = () => !this.serverErrors.signin;
- this.form_signin.signinPassword.$validators.server = () => !this.serverErrors.signin;
- this.form_forgot.forgotEmail.$validators.server = () => !this.serverErrors.remindPassword;
- }
- signup() {
- return this.Auth.signnup(this.data.signup).catch((res) => {
- this.IgniteMessages.showError(null, res.data);
- this.serverErrors.signup = res.data;
- this.form_signup.signupEmail.$validate();
- });
+ this.form.password.$validators.server = () => !this.serverError;
}
+
signin() {
- return this.Auth.signin(this.data.signin.email, this.data.signin.password).catch((res) => {
- this.IgniteMessages.showError(null, res.data);
- this.serverErrors.signin = res.data;
- this.form_signin.signinEmail.$validate();
- this.form_signin.signinPassword.$validate();
- });
- }
- remindPassword() {
- return this.Auth.remindPassword(this.data.remindPassword.email).catch((res) => {
+ return this.Auth.signin(this.data.email, this.data.password).catch((res) => {
this.IgniteMessages.showError(null, res.data);
- this.serverErrors.remindPassword = res.data;
- this.form_forgot.forgotEmail.$validate();
+ this.serverError = res.data;
+ this.form.email.$validate();
+ this.form.password.$validate();
});
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f8df263/modules/web-console/frontend/app/components/page-signin/index.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/components/page-signin/index.js b/modules/web-console/frontend/app/components/page-signin/index.js
index 6be374f..ee027a6 100644
--- a/modules/web-console/frontend/app/components/page-signin/index.js
+++ b/modules/web-console/frontend/app/components/page-signin/index.js
@@ -16,41 +16,13 @@
*/
import angular from 'angular';
-
-import template from './template.pug';
-import controller from './controller';
-import './style.scss';
+import component from './component';
+import {registerState} from './run';
export default angular
- .module('ignite-console.sign-in', [
+ .module('ignite-console.page-signin', [
'ui.router',
'ignite-console.user'
])
- .component('pageSignIn', {
- controller,
- template
- })
- .config(['$stateProvider', function($stateProvider) {
- // set up the states
- $stateProvider
- .state('signin', {
- url: '/signin',
- template: '<page-sign-in></page-sign-in>',
- redirectTo: (trans) => {
- return trans.injector().get('User').read()
- .then(() => {
- try {
- const {name, params} = JSON.parse(localStorage.getItem('lastStateChangeSuccess'));
-
- const restored = trans.router.stateService.target(name, params);
-
- return restored.valid() ? restored : 'default-state';
- } catch (ignored) {
- return 'default-state';
- }
- })
- .catch(() => true);
- },
- unsaved: true
- });
- }]);
+ .component('pageSignin', component)
+ .run(registerState);
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f8df263/modules/web-console/frontend/app/components/page-signin/run.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/components/page-signin/run.js b/modules/web-console/frontend/app/components/page-signin/run.js
new file mode 100644
index 0000000..7ac3bf8
--- /dev/null
+++ b/modules/web-console/frontend/app/components/page-signin/run.js
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * @param {import("@uirouter/angularjs").UIRouter} $uiRouter
+ */
+export function registerState($uiRouter) {
+ /** @type {import("app/types").IIgniteNg1StateDeclaration} */
+ const state = {
+ url: '/signin',
+ name: 'signin',
+ component: 'pageSignin',
+ unsaved: true,
+ redirectTo: (trans) => {
+ const skipStates = new Set(['signup', 'forgotPassword', 'landing']);
+ if (skipStates.has(trans.from().name)) return;
+ return trans.injector().get('User').read()
+ .then(() => {
+ try {
+ const {name, params} = JSON.parse(localStorage.getItem('lastStateChangeSuccess'));
+
+ const restored = trans.router.stateService.target(name, params);
+
+ return restored.valid() ? restored : 'default-state';
+ } catch (ignored) {
+ return 'default-state';
+ }
+ })
+ .catch(() => true);
+ },
+ tfMetaTags: {
+ title: 'Sign In'
+ }
+ };
+
+ $uiRouter.stateRegistry.register(state);
+}
+
+registerState.$inject = ['$uiRouter'];
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f8df263/modules/web-console/frontend/app/components/page-signin/style.scss
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/components/page-signin/style.scss b/modules/web-console/frontend/app/components/page-signin/style.scss
index 8ea143a..c4dee98 100644
--- a/modules/web-console/frontend/app/components/page-signin/style.scss
+++ b/modules/web-console/frontend/app/components/page-signin/style.scss
@@ -15,34 +15,41 @@
* limitations under the License.
*/
-page-sign-in {
+page-signin {
display: flex;
flex-direction: column;
flex: 1 0 auto;
- font-family: Roboto;
-
- h3 {
- font-size: 38px;
- font-weight: 300;
- margin: 30px 0 60px;
- }
-
section {
- flex-grow: 1;
- padding: 25px 0 60px;
+ margin-left: auto;
+ margin-right: auto;
+ width: 530px;
- background-color: #ffffff;
- color: #444444;
- }
+ h3 {
+ font-size: 38px;
+ font-weight: 300;
+ margin: 30px 0 30px;
+ }
+
+ .form-field {
+ margin: 10px 0;
+ }
- .ps-grid {
- display: grid;
- grid-gap: 10px;
- grid-template-columns: 1fr 1fr;
+ .form-footer {
+ padding: 15px 0;
+ text-align: right;
+ border-top: 1px solid #e5e5e5;
+ display: flex;
+ align-items: center;
- .ps-grid-full-width {
- grid-column: 1 / 3;
+ .btn-ignite {
+ margin-left: auto;
+ }
}
}
-}
\ No newline at end of file
+
+ .page-signin__no-account-message {
+ text-align: center;
+ margin: 20px 0;
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f8df263/modules/web-console/frontend/app/components/page-signin/template.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/components/page-signin/template.pug b/modules/web-console/frontend/app/components/page-signin/template.pug
index 58d8571..fd5e95f 100644
--- a/modules/web-console/frontend/app/components/page-signin/template.pug
+++ b/modules/web-console/frontend/app/components/page-signin/template.pug
@@ -20,164 +20,41 @@ web-console-header
web-console-header-left
ignite-header-title
-section
- .container
- .row
- .col-lg-6.col-md-6.col-sm-6.col-xs-12
- .row
- .col-xs-12.col-md-11
- -var form = '$ctrl.form_signup'
- h3 Don't Have An Account?
- form.ps-grid(name=form novalidate)
- .ps-grid-full-width
- +form-field__email({
- label: 'Email:',
- model: '$ctrl.data.signup.email',
- name: '"signupEmail"',
- placeholder: 'Input email',
- required: true
- })(
- ignite-on-enter-focus-move='passwordInput'
- ng-model-options='{allowInvalid: true}'
- )
- +form-field__error({error: 'server', message: `{{$ctrl.serverErrors.signup}}`})
- div
- +form-field__password({
- label: 'Password:',
- model: '$ctrl.data.signup.password',
- name: '"password"',
- placeholder: 'Input password',
- required: true
- })(
- ignite-on-enter-focus-move='confirmInput'
- )
- div
- +form-field__password({
- label: 'Confirm:',
- model: 'confirm',
- name: '"confirm"',
- placeholder: 'Confirm password',
- required: true
- })(
- ignite-on-enter-focus-move='firstNameInput'
- ignite-match='$ctrl.data.signup.password'
- )
- div
- +form-field__text({
- label: 'First name:',
- model: '$ctrl.data.signup.firstName',
- name: '"firstName"',
- placeholder: 'Input first name',
- required: true
- })(
- ignite-on-enter-focus-move='lastNameInput'
- )
- div
- +form-field__text({
- label: 'Last name:',
- model: '$ctrl.data.signup.lastName',
- name: '"lastName"',
- placeholder: 'Input last name',
- required: true
- })(
- ignite-on-enter-focus-move='companyInput'
- )
- .ps-grid-full-width
- +form-field__dropdown({
- label: 'Country:',
- model: '$ctrl.data.signup.country',
- name: '"country"',
- required: true,
- placeholder: 'Choose your country',
- options: '$ctrl.countries'
- })(
- ignite-on-enter-focus-move='signup_submit'
- )
- .ps-grid-full-width
- +form-field__text({
- label: 'Company:',
- model: '$ctrl.data.signup.company',
- name: '"company"',
- placeholder: 'Input company name',
- required: true
- })(
- ignite-on-enter-focus-move='countryInput'
- )
- .login-footer.ps-grid-full-width
- button#signup_submit.btn-ignite.btn-ignite--primary(
- ng-click='$ctrl.signup()'
- ng-disabled=`!$ctrl.canSubmitForm(${form})`
- ) Sign Up
-
- .col-lg-6.col-md-6.col-sm-6.col-xs-12
- .row
- .col-xs-12.col-md-11
- -var form = '$ctrl.form_signin'
- form.row(ng-show='$ctrl.isSigninOpened' name=form novalidate)
- .settings-row
- h3 Sign In
- .settings-row
- +form-field__email({
- label: 'Email:',
- model: '$ctrl.data.signin.email',
- name: '"signinEmail"',
- placeholder: 'Input email',
- required: true
- })(
- ignite-auto-focus
- ignite-on-enter-focus-move='singinPasswordInput'
- ng-model-options='{allowInvalid: true}'
- )
- +form-field__error({error: 'server', message: `{{$ctrl.serverErrors.signin}}`})
- .settings-row
- +form-field__password({
- label: 'Password:',
- model: '$ctrl.data.signin.password',
- name: '"signinPassword"',
- placeholder: 'Input password',
- required: true
- })(
- ignite-on-enter='$ctrl.signin($ctrl.data.signin.email, $ctrl.data.signin.password)'
- ng-model-options='{allowInvalid: true}'
- )
- +form-field__error({error: 'server', message: `{{$ctrl.serverErrors.signin}}`})
- .login-footer
- a.labelField#forgot_show(
- ng-click='$ctrl.toggleActiveForm()'
- ignite-on-click-focus='forgot_email'
- ) Forgot password?
- button#signin_submit.btn-ignite.btn-ignite--primary(
- ng-click='$ctrl.signin()'
- ng-disabled=`!$ctrl.canSubmitForm(${form})`
- ) Sign In
-
- - var form = '$ctrl.form_forgot'
- form.row(ng-show='$ctrl.isRemindPasswordOpened' name=form novalidate)
- .settings-row
- h3 Forgot password?
- .settings-row
- p.col-xs-12.col-md-11 That's ok! Simply enter your email below and a reset password link will be sent to you via email. You can then follow that link and select a new password.
- .settings-row
- +form-field__email({
- label: 'Email:',
- model: '$ctrl.data.remindPassword.email',
- name: '"forgotEmail"',
- placeholder: 'Input email',
- required: true
- })(
- ignite-auto-focus
- ng-model-options='{allowInvalid: true}'
- ignite-on-enter='$ctrl.remindPassword()'
- )
- +form-field__error({error: 'server', message: `{{$ctrl.serverErrors.remindPassword}}`})
- .login-footer
- a.labelField#forgot_signin(
- ng-click='$ctrl.toggleActiveForm()'
- ignite-on-click-focus='signin_email'
- ) Sign In
- button#forgot_submit.btn-ignite.btn-ignite--primary(
- ng-click='$ctrl.remindPassword()'
- ng-disabled=`!$ctrl.canSubmitForm(${form})`
- ) Send it to me
+.container.body-container
+ section
+ -var form = '$ctrl.form'
+ h3 Sign In
+ form(name=form novalidate ng-submit='$ctrl.signin()')
+ +form-field__email({
+ label: 'Email:',
+ model: '$ctrl.data.email',
+ name: '"email"',
+ placeholder: 'Input email',
+ required: true
+ })(
+ ng-model-options='{allowInvalid: true}'
+ autocomplete='email'
+ ignite-auto-focus
+ )
+ +form-field__error({error: 'server', message: `{{$ctrl.serverErrors.}`})
+ +form-field__password({
+ label: 'Password:',
+ model: '$ctrl.data.password',
+ name: '"password"',
+ placeholder: 'Input password',
+ required: true
+ })(
+ ng-model-options='{allowInvalid: true}'
+ autocomplete='current-password'
+ )
+ +form-field__error({error: 'server', message: `{{$ctrl.serverErrors}}`})
+ footer.form-footer
+ a(ui-sref='forgotPassword({email: $ctrl.data.email})') Forgot password?
+ button.btn-ignite.btn-ignite--primary(
+ type='submit'
+ ng-disabled=`!$ctrl.canSubmitForm(${form})`
+ ) Sign In
+ footer.page-signin__no-account-message
+ | Don't have an account? #[a(ui-sref='signup') Get started]
web-console-footer
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f8df263/modules/web-console/frontend/app/components/page-signin/types.ts
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/components/page-signin/types.ts b/modules/web-console/frontend/app/components/page-signin/types.ts
new file mode 100644
index 0000000..96cca75
--- /dev/null
+++ b/modules/web-console/frontend/app/components/page-signin/types.ts
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export interface ISiginData {
+ email: string,
+ password: string
+}
+
+export interface ISigninFormController extends ng.IFormController {
+ email: ng.INgModelController,
+ password: ng.INgModelController
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f8df263/modules/web-console/frontend/app/components/page-signup/component.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/components/page-signup/component.js b/modules/web-console/frontend/app/components/page-signup/component.js
new file mode 100644
index 0000000..789a681
--- /dev/null
+++ b/modules/web-console/frontend/app/components/page-signup/component.js
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import angular from 'angular';
+
+import template from './template.pug';
+import controller from './controller';
+import './style.scss';
+
+/** @type {ng.IComponentOptions} */
+export default {
+ controller,
+ template
+};
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f8df263/modules/web-console/frontend/app/components/page-signup/controller.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/components/page-signup/controller.js b/modules/web-console/frontend/app/components/page-signup/controller.js
new file mode 100644
index 0000000..ffc534a
--- /dev/null
+++ b/modules/web-console/frontend/app/components/page-signup/controller.js
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export default class PageSignup {
+ /** @type {import('./types').ISignupFormController} */
+ form;
+ /** @type {import('./types').ISignupData} */
+ data = {
+ email: null,
+ password: null,
+ firstName: null,
+ lastName: null,
+ company: null,
+ country: null
+ };
+ /** @type {string} */
+ serverError = null;
+
+ static $inject = ['IgniteCountries', 'Auth', 'IgniteMessages'];
+
+ /**
+ * @param {import('app/modules/user/Auth.service').default} Auth
+ */
+ constructor(Countries, Auth, IgniteMessages) {
+ this.Auth = Auth;
+ this.IgniteMessages = IgniteMessages;
+ this.countries = Countries.getAll();
+ }
+
+ /** @param {import('./types').ISignupFormController} form */
+ canSubmitForm(form) {
+ return form.$error.server ? true : !form.$invalid;
+ }
+
+ $postLink() {
+ this.form.email.$validators.server = () => !this.serverError;
+ }
+
+ signup() {
+ return this.Auth.signnup(this.data).catch((res) => {
+ this.IgniteMessages.showError(null, res.data);
+ this.serverError = res.data;
+ this.form.email.$validate();
+ });
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f8df263/modules/web-console/frontend/app/components/page-signup/index.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/components/page-signup/index.js b/modules/web-console/frontend/app/components/page-signup/index.js
new file mode 100644
index 0000000..4efadb5
--- /dev/null
+++ b/modules/web-console/frontend/app/components/page-signup/index.js
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import angular from 'angular';
+import component from './component';
+import {registerState} from './run';
+
+export default angular
+ .module('ignite-console.page-signup', [
+ 'ui.router',
+ 'ignite-console.user'
+ ])
+ .component('pageSignup', component)
+ .run(registerState);
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f8df263/modules/web-console/frontend/app/components/page-signup/run.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/components/page-signup/run.js b/modules/web-console/frontend/app/components/page-signup/run.js
new file mode 100644
index 0000000..1d04fa2
--- /dev/null
+++ b/modules/web-console/frontend/app/components/page-signup/run.js
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * @param {import("@uirouter/angularjs").UIRouter} $uiRouter
+ */
+export function registerState($uiRouter) {
+ /** @type {import("app/types").IIgniteNg1StateDeclaration} */
+ const state = {
+ name: 'signup',
+ url: '/signup',
+ component: 'pageSignup',
+ unsaved: true,
+ tfMetaTags: {
+ title: 'Sign Up'
+ }
+ };
+ $uiRouter.stateRegistry.register(state);
+}
+
+registerState.$inject = ['$uiRouter'];
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f8df263/modules/web-console/frontend/app/components/page-signup/style.scss
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/components/page-signup/style.scss b/modules/web-console/frontend/app/components/page-signup/style.scss
new file mode 100644
index 0000000..54ae14e
--- /dev/null
+++ b/modules/web-console/frontend/app/components/page-signup/style.scss
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+page-signup {
+ display: flex;
+ flex-direction: column;
+ flex: 1 0 auto;
+
+ section {
+ h3 {
+ font-size: 38px;
+ font-weight: 300;
+ margin: 30px 0 30px;
+ }
+
+ margin-left: auto;
+ margin-right: auto;
+ width: 530px;
+
+ form footer {
+ padding: 15px 0;
+ text-align: right;
+ border-top: 1px solid #e5e5e5;
+ display: flex;
+ align-items: center;
+
+ .btn-ignite {
+ margin-left: auto;
+ }
+ }
+
+ form {
+ display: grid;
+ grid-gap: 10px;
+ grid-template-columns: 1fr 1fr;
+
+ .full-width {
+ grid-column: 1 / 3;
+ }
+ }
+ }
+
+ .page-signup__has-account-message {
+ text-align: center;
+ margin: 20px 0;
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f8df263/modules/web-console/frontend/app/components/page-signup/template.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/components/page-signup/template.pug b/modules/web-console/frontend/app/components/page-signup/template.pug
new file mode 100644
index 0000000..8cc7b14
--- /dev/null
+++ b/modules/web-console/frontend/app/components/page-signup/template.pug
@@ -0,0 +1,122 @@
+//-
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+include /app/helpers/jade/mixins
+
+web-console-header
+ web-console-header-left
+ ignite-header-title
+
+.container.body-container
+ section
+ -var form = '$ctrl.form'
+ h3 Don't Have An Account?
+ form(name=form novalidate ng-submit='$ctrl.signup()')
+ .full-width
+ +form-field__email({
+ label: 'Email:',
+ model: '$ctrl.data.email',
+ name: '"email"',
+ placeholder: 'Input email',
+ required: true
+ })(
+ ng-model-options='{allowInvalid: true}'
+ autocomplete='email'
+ ignite-auto-focus
+ )
+ +form-field__error({error: 'server', message: `{{$ctrl.serverError}}`})
+ div
+ +form-field__password({
+ label: 'Password:',
+ model: '$ctrl.data.password',
+ name: '"password"',
+ placeholder: 'Input password',
+ required: true
+ })(
+ autocomplete='new-password'
+ )
+ div
+ +form-field__password({
+ label: 'Confirm:',
+ model: 'confirm',
+ name: '"confirm"',
+ placeholder: 'Confirm password',
+ required: true
+ })(
+ ignite-match='$ctrl.data.password'
+ autocomplete='off'
+ )
+ div
+ +form-field__text({
+ label: 'First name:',
+ model: '$ctrl.data.firstName',
+ name: '"firstName"',
+ placeholder: 'Input first name',
+ required: true
+ })(
+ autocomplete='given-name'
+ )
+ div
+ +form-field__text({
+ label: 'Last name:',
+ model: '$ctrl.data.lastName',
+ name: '"lastName"',
+ placeholder: 'Input last name',
+ required: true
+ })(
+ autocomplete='family-name'
+ )
+ div
+ +form-field__phone({
+ label: 'Phone:',
+ model: '$ctrl.data.phone',
+ name: '"phone"',
+ placeholder: 'Input phone (ex.: +15417543010)',
+ optional: true
+ })(
+ autocomplete='tel'
+ )
+ div
+ +form-field__dropdown({
+ label: 'Country:',
+ model: '$ctrl.data.country',
+ name: '"country"',
+ required: true,
+ placeholder: 'Choose your country',
+ options: '$ctrl.countries'
+ })(
+ autocomplete='country'
+ )
+ .full-width
+ +form-field__text({
+ label: 'Company:',
+ model: '$ctrl.data.company',
+ name: '"company"',
+ placeholder: 'Input company name',
+ required: true
+ })(
+ ignite-on-enter-focus-move='countryInput'
+ autocomplete='organization'
+ )
+ footer.full-width.form-footer
+ button.btn-ignite.btn-ignite--primary(
+ type='submit'
+ ng-disabled=`!$ctrl.canSubmitForm(${form})`
+ ) Sign Up
+ footer.page-signup__has-account-message
+ | Already have an account? #[a(ui-sref='signin') Sign in here]
+
+web-console-footer
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f8df263/modules/web-console/frontend/app/components/page-signup/types.ts
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/components/page-signup/types.ts b/modules/web-console/frontend/app/components/page-signup/types.ts
new file mode 100644
index 0000000..49e8d5d
--- /dev/null
+++ b/modules/web-console/frontend/app/components/page-signup/types.ts
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export interface ISignupData {
+ email: string,
+ password: string,
+ firstName: string,
+ lastName: string,
+ phone?: string,
+ company: string,
+ country: string
+}
+
+export interface ISignupFormController extends ng.IFormController {
+ email: ng.INgModelController,
+ password: ng.INgModelController,
+ firstName: ng.INgModelController,
+ lastName: ng.INgModelController,
+ phone: ng.INgModelController,
+ company: ng.INgModelController,
+ country: ng.INgModelController
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f8df263/modules/web-console/frontend/app/primitives/form-field/dropdown.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/primitives/form-field/dropdown.pug b/modules/web-console/frontend/app/primitives/form-field/dropdown.pug
index cb05829..c41825c 100644
--- a/modules/web-console/frontend/app/primitives/form-field/dropdown.pug
+++ b/modules/web-console/frontend/app/primitives/form-field/dropdown.pug
@@ -17,6 +17,7 @@
mixin form-field__dropdown({ label, model, name, disabled, required, multiple, placeholder, placeholderEmpty, options, tip })
mixin __form-field__input()
button.select-toggle(
+ type='button'
id=`{{ ${name} }}Input`
name=`{{ ${name} }}`
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f8df263/modules/web-console/frontend/app/types/index.ts
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/types/index.ts b/modules/web-console/frontend/app/types/index.ts
new file mode 100644
index 0000000..333c00b
--- /dev/null
+++ b/modules/web-console/frontend/app/types/index.ts
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {Ng1StateDeclaration} from '@uirouter/angularjs';
+
+interface ITfMetatagsConfig {
+ title: string
+}
+
+export interface IIgniteNg1StateDeclaration extends Ng1StateDeclaration {
+ /**
+ * Whether to store state as last visited in local storage or not.
+ * true - will be saved
+ * false (default) - won't be saved
+ * @type {boolean}
+ */
+ unsaved?: boolean,
+ tfMetaTags: ITfMetatagsConfig
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f8df263/modules/web-console/frontend/public/stylesheets/style.scss
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/public/stylesheets/style.scss b/modules/web-console/frontend/public/stylesheets/style.scss
index 0c978e9..a9702e3 100644
--- a/modules/web-console/frontend/public/stylesheets/style.scss
+++ b/modules/web-console/frontend/public/stylesheets/style.scss
@@ -241,29 +241,6 @@ h1, h2, h3, h4, h5, h6 {
font-size: 2em;
}
-.login-footer {
- padding: 15px 0;
- text-align: right;
- border-top: 1px solid #e5e5e5;
-
- label {
- float: left;
- margin: 0;
- }
-
- .btn:last-child {
- margin-right: 0;
- }
-
- .checkbox {
- margin: 0;
- }
-
- .btn {
- margin-right: 0;
- }
-}
-
body {
overflow-x: hidden;
display: flex;
[2/2] ignite git commit: IGNITE-8370 Rename file.
Posted by ak...@apache.org.
IGNITE-8370 Rename file.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/41699c31
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/41699c31
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/41699c31
Branch: refs/heads/master
Commit: 41699c31cfe51f6a4d158b2510b7eb7ec7d9685b
Parents: 2f8df26
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Wed Apr 25 16:14:17 2018 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Wed Apr 25 16:14:17 2018 +0700
----------------------------------------------------------------------
.../testcafe/fixtures/auth/forgot-password.js | 2 +-
.../e2e/testcafe/fixtures/auth/logout.js | 2 +-
.../e2e/testcafe/page-models/pageSignin.js | 32 ++++++++++++++++++++
.../e2e/testcafe/page-models/pageSignin1.js | 32 --------------------
modules/web-console/e2e/testcafe/roles.js | 2 +-
5 files changed, 35 insertions(+), 35 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/41699c31/modules/web-console/e2e/testcafe/fixtures/auth/forgot-password.js
----------------------------------------------------------------------
diff --git a/modules/web-console/e2e/testcafe/fixtures/auth/forgot-password.js b/modules/web-console/e2e/testcafe/fixtures/auth/forgot-password.js
index 27ac2db..1163595 100644
--- a/modules/web-console/e2e/testcafe/fixtures/auth/forgot-password.js
+++ b/modules/web-console/e2e/testcafe/fixtures/auth/forgot-password.js
@@ -16,7 +16,7 @@
*/
import { dropTestDB, resolveUrl, insertTestUser } from '../../envtools';
-import {PageSignIn} from '../../page-models/pageSignin1';
+import {PageSignIn} from '../../page-models/pageSignin';
import {errorNotification} from '../../components/notifications';
import {pageForgotPassword as page} from '../../page-models/pageForgotPassword';
http://git-wip-us.apache.org/repos/asf/ignite/blob/41699c31/modules/web-console/e2e/testcafe/fixtures/auth/logout.js
----------------------------------------------------------------------
diff --git a/modules/web-console/e2e/testcafe/fixtures/auth/logout.js b/modules/web-console/e2e/testcafe/fixtures/auth/logout.js
index 5cad60f..d2e7e66 100644
--- a/modules/web-console/e2e/testcafe/fixtures/auth/logout.js
+++ b/modules/web-console/e2e/testcafe/fixtures/auth/logout.js
@@ -18,7 +18,7 @@
import {dropTestDB, resolveUrl, insertTestUser} from 'envtools';
import {createRegularUser} from '../../roles';
import {userMenu} from '../../components/userMenu';
-import {pageSignin} from '../../page-models/pageSignin1';
+import {pageSignin} from '../../page-models/pageSignin';
const user = createRegularUser();
http://git-wip-us.apache.org/repos/asf/ignite/blob/41699c31/modules/web-console/e2e/testcafe/page-models/pageSignin.js
----------------------------------------------------------------------
diff --git a/modules/web-console/e2e/testcafe/page-models/pageSignin.js b/modules/web-console/e2e/testcafe/page-models/pageSignin.js
new file mode 100644
index 0000000..57031b6
--- /dev/null
+++ b/modules/web-console/e2e/testcafe/page-models/pageSignin.js
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {Selector, t} from 'testcafe';
+import {CustomFormField} from '../components/FormField';
+
+export const pageSignin = {
+ email: new CustomFormField({model: '$ctrl.data.email'}),
+ password: new CustomFormField({model: '$ctrl.data.password'}),
+ signinButton: Selector('button').withText('Sign In'),
+ selector: Selector('page-signin'),
+ async login(email, password) {
+ return await t
+ .typeText(this.email.control, email)
+ .typeText(this.password.control, password)
+ .click(this.signinButton);
+ }
+};
http://git-wip-us.apache.org/repos/asf/ignite/blob/41699c31/modules/web-console/e2e/testcafe/page-models/pageSignin1.js
----------------------------------------------------------------------
diff --git a/modules/web-console/e2e/testcafe/page-models/pageSignin1.js b/modules/web-console/e2e/testcafe/page-models/pageSignin1.js
deleted file mode 100644
index 57031b6..0000000
--- a/modules/web-console/e2e/testcafe/page-models/pageSignin1.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import {Selector, t} from 'testcafe';
-import {CustomFormField} from '../components/FormField';
-
-export const pageSignin = {
- email: new CustomFormField({model: '$ctrl.data.email'}),
- password: new CustomFormField({model: '$ctrl.data.password'}),
- signinButton: Selector('button').withText('Sign In'),
- selector: Selector('page-signin'),
- async login(email, password) {
- return await t
- .typeText(this.email.control, email)
- .typeText(this.password.control, password)
- .click(this.signinButton);
- }
-};
http://git-wip-us.apache.org/repos/asf/ignite/blob/41699c31/modules/web-console/e2e/testcafe/roles.js
----------------------------------------------------------------------
diff --git a/modules/web-console/e2e/testcafe/roles.js b/modules/web-console/e2e/testcafe/roles.js
index 5d9bfcc..3089e97 100644
--- a/modules/web-console/e2e/testcafe/roles.js
+++ b/modules/web-console/e2e/testcafe/roles.js
@@ -17,7 +17,7 @@
const { Role, t } = require('testcafe');
import { resolveUrl } from './envtools';
-import {pageSignin as page} from './page-models/pageSignin1';
+import {pageSignin as page} from './page-models/pageSignin';
export const createRegularUser = () => {
return new Role(resolveUrl('/signin'), async() => {