From 0303b18e2e2e32456e6b1aa88e4226c79bd74a1c Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Wed, 4 Apr 2018 09:19:39 -0400 Subject: [PATCH] share login component with jslib --- jslib | 2 +- src/app/accounts/login.component.ts | 55 +++++------------------------ tsconfig.json | 5 ++- 3 files changed, 13 insertions(+), 49 deletions(-) diff --git a/jslib b/jslib index 579f9703..7b4d0a71 160000 --- a/jslib +++ b/jslib @@ -1 +1 @@ -Subproject commit 579f970323ea0bbc0d26f17cb9454c142f47bf6a +Subproject commit 7b4d0a71de640ce14c3c446bfd2e8ce36635db3f diff --git a/src/app/accounts/login.component.ts b/src/app/accounts/login.component.ts index 7efdb475..ec15225d 100644 --- a/src/app/accounts/login.component.ts +++ b/src/app/accounts/login.component.ts @@ -14,57 +14,24 @@ import { Angulartics2 } from 'angulartics2'; import { ModalComponent } from '../modal.component'; import { EnvironmentComponent } from './environment.component'; -import { AuthResult } from 'jslib/models/domain/authResult'; - import { AuthService } from 'jslib/abstractions/auth.service'; import { I18nService } from 'jslib/abstractions/i18n.service'; import { SyncService } from 'jslib/abstractions/sync.service'; +import { LoginComponent as BaseLoginComponent } from 'jslib/angular/components/login.component'; + @Component({ selector: 'app-login', template: template, }) -export class LoginComponent { +export class LoginComponent extends BaseLoginComponent { @ViewChild('environment', { read: ViewContainerRef }) environmentModal: ViewContainerRef; - email: string = ''; - masterPassword: string = ''; - showPassword: boolean = false; - formPromise: Promise; - - constructor(private authService: AuthService, private router: Router, private analytics: Angulartics2, - private toasterService: ToasterService, private i18nService: I18nService, private syncService: SyncService, - private componentFactoryResolver: ComponentFactoryResolver) { } - - async submit() { - if (this.email == null || this.email === '') { - this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'), - this.i18nService.t('emailRequired')); - return; - } - if (this.email.indexOf('@') === -1) { - this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'), - this.i18nService.t('invalidEmail')); - return; - } - if (this.masterPassword == null || this.masterPassword === '') { - this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'), - this.i18nService.t('masterPassRequired')); - return; - } - - try { - this.formPromise = this.authService.logIn(this.email, this.masterPassword); - const response = await this.formPromise; - if (response.twoFactor) { - this.analytics.eventTrack.next({ action: 'Logged In To Two-step' }); - this.router.navigate(['2fa']); - } else { - this.syncService.fullSync(true); - this.analytics.eventTrack.next({ action: 'Logged In' }); - this.router.navigate(['vault']); - } - } catch { } + constructor(authService: AuthService, router: Router, + analytics: Angulartics2, toasterService: ToasterService, + i18nService: I18nService, syncService: SyncService, + private componentFactoryResolver: ComponentFactoryResolver) { + super(authService, router, analytics, toasterService, i18nService, syncService); } settings() { @@ -77,10 +44,4 @@ export class LoginComponent { modal.close(); }); } - - togglePassword() { - this.analytics.eventTrack.next({ action: 'Toggled Master Password on Login' }); - this.showPassword = !this.showPassword; - document.getElementById('masterPassword').focus(); - } } diff --git a/tsconfig.json b/tsconfig.json index 26d73cad..d30525b0 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -11,7 +11,10 @@ "types": [], "baseUrl": ".", "paths": { - "jslib/*": [ "jslib/src/*" ] + "jslib/*": [ "jslib/src/*" ], + "@angular/*": [ "node_modules/@angular/*" ], + "angular2-toaster": [ "node_modules/angular2-toaster" ], + "angulartics2": [ "node_modules/angulartics2" ] } }, "exclude": [