Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import { Component, OnInit } from '@angular/core';
- import { Router, ActivatedRoute } from '@angular/router';
- import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';
- import { CustomValidators } from 'ng2-validation';
- import { AuthenticationService, RegisterUserDTO, Company } from '../../../../services/authenticationService';
- import { MdDialog, MdDialogRef } from '@angular/material';
- import { SingUp } from '../signup/sing-up.interface';
- const password = new FormControl('', Validators.required);
- const confirmPassword = new FormControl('', CustomValidators.equalTo(password));
- @Component({
- selector: 'bookibot-signup',
- templateUrl: './signup.component.html',
- styleUrls: ['./signup.component.scss']
- })
- export class BookibotSignUpComponent implements OnInit {
- returnUrl: string;
- public form: FormGroup;
- public isCompanyRegistered: Boolean = false;
- constructor(private fb: FormBuilder,
- private route: ActivatedRoute,
- private router: Router,
- private authenticationService: AuthenticationService,
- private dialog: MdDialog) { }
- public TestMethodType={
- User: 'user',
- Company: 'company'
- };
- ngOnInit() {
- this.form = this.fb.group({
- email: ['', Validators.compose([Validators.required, CustomValidators.email])],
- password: password,
- confirmPassword: confirmPassword,
- agreeWithTerms: [false, Validators.required],
- companyMethod: this.initData()
- });
- this.returnUrl = this.route.snapshot.queryParams['returnUrl'] || '/company/edit';
- }
- initData(){
- const group = this.fb.group({
- type: [''],
- user: this.fb.group(this.initDataUserModel()),
- company: this.fb.group(this.initDataCompanyModel()),
- });
- return group;
- }
- initDataCompanyModel(){
- const model = {
- companyPhone: ['',Validators.required],
- companyName: ['', Validators.required],
- companyAddress: ['', Validators.required]
- };
- return model;
- }
- initDataUserModel(){
- const model = {
- companyPhone: [''],
- companyName: [''],
- companyAddress: ['']
- };
- return model;
- }
- setUserOrCompanyMethodType(type: string){
- const ctrl: FormControl = (<any>this.form).controls.companyMethod.controls.type;
- ctrl.setValue(type);
- }
- // subscribeCompanyTypeChanges() {
- // const pmCtrl = (<any>this.form).controls.companyMethod;
- // const userCtrl = pmCtrl.controls.user;
- // const companyCtrl = pmCtrl.controls.company;
- // const changes$ = pmCtrl.controls.type.valueChanges;
- // changes$.subscribe(companyMethodType => {
- // if (companyMethodType === this.TestMethodType.Company) {
- // Object.keys(companyCtrl.controls).forEach(key => {
- // companyCtrl.controls[key].setValidators(this.initDataCompanyModel()[key][1]);
- // companyCtrl.controls[key].updateValueAndValidity();
- // });
- // Object.keys(companyCtrl.controls).forEach(key => {
- // companyCtrl.controls[key].setValidators(null);
- // companyCtrl.controls[key].updateValueAndValidity();
- // });
- // }
- // if (companyMethodType === this.TestMethodType.User) {
- // Object.keys(userCtrl.controls).forEach(key => {
- // userCtrl.controls[key].setValidators(null);
- // userCtrl.controls[key].updateValueAndValidity();
- // });
- // Object.keys(userCtrl.controls).forEach(key => {
- // userCtrl.controls[key].setValidators(this.initDataUserModel()[key][1]);
- // userCtrl.controls[key].updateValueAndValidity();
- // });
- // }
- // });
- // }
- onSubmit() {
- var company: Company = new Company(
- this.form.value.companyName,
- this.form.value.companyAddress,
- this.form.value.companyPhone,
- this.form.value.email
- );
- var dto: RegisterUserDTO = new RegisterUserDTO();
- dto.Email = this.form.value.email;
- dto.Password = this.form.value.password;
- dto.ConfirmPassword = this.form.value.confirmPassword;
- dto.Company = (this.isCompanyRegistered) ? company : null;
- this.authenticationService.signup(dto)
- .subscribe(result => {
- if (result === true) {
- // login successful
- this.router.navigateByUrl(this.returnUrl);
- } else {
- const dialogRef = this.dialog.open(SignUpErrorComponent);
- }
- }, err => {
- const dialogRef = this.dialog.open(SignUpErrorComponent);
- });
- }
- }
- @Component({
- selector: 'sign-up-error',
- templateUrl: 'sign-up-error.html',
- })
- export class SignUpErrorComponent {
- constructor(public dialogRef: MdDialogRef<SignUpErrorComponent>) { }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement