Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2017
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import { Component, OnInit } from '@angular/core';
  2. import { Router, ActivatedRoute } from '@angular/router';
  3. import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';
  4. import { CustomValidators } from 'ng2-validation';
  5. import { AuthenticationService, RegisterUserDTO, Company } from '../../../../services/authenticationService';
  6. import { MdDialog, MdDialogRef } from '@angular/material';
  7. import { SingUp } from '../signup/sing-up.interface';
  8. const password = new FormControl('', Validators.required);
  9. const confirmPassword = new FormControl('', CustomValidators.equalTo(password));
  10.  
  11. @Component({
  12.   selector: 'bookibot-signup',
  13.   templateUrl: './signup.component.html',
  14.   styleUrls: ['./signup.component.scss']
  15. })
  16. export class BookibotSignUpComponent implements OnInit {
  17.   returnUrl: string;
  18.   public form: FormGroup;
  19.   public isCompanyRegistered: Boolean = false;
  20.  
  21.   constructor(private fb: FormBuilder,
  22.     private route: ActivatedRoute,
  23.     private router: Router,
  24.     private authenticationService: AuthenticationService,
  25.     private dialog: MdDialog) { }
  26.  
  27.     public TestMethodType={
  28.       User: 'user',
  29.       Company: 'company'
  30.     };
  31.  
  32.   ngOnInit() {
  33.     this.form = this.fb.group({
  34.       email: ['', Validators.compose([Validators.required, CustomValidators.email])],
  35.       password: password,
  36.       confirmPassword: confirmPassword,
  37.       agreeWithTerms: [false, Validators.required],
  38.       companyMethod: this.initData()
  39.     });
  40.     this.returnUrl = this.route.snapshot.queryParams['returnUrl'] || '/company/edit';
  41.   }
  42.   initData(){
  43.     const group = this.fb.group({
  44.       type: [''],
  45.       user: this.fb.group(this.initDataUserModel()),
  46.       company: this.fb.group(this.initDataCompanyModel()),
  47.     });
  48.     return group;
  49.   }
  50.  
  51.   initDataCompanyModel(){
  52.    const model = {
  53.       companyPhone: ['',Validators.required],
  54.       companyName: ['', Validators.required],
  55.       companyAddress: ['', Validators.required]
  56.     };
  57.     return model;
  58.   }
  59.     initDataUserModel(){
  60.       const model = {
  61.         companyPhone: [''],
  62.         companyName: [''],
  63.         companyAddress: ['']
  64.       };
  65.       return model;
  66.     }
  67.  
  68.     setUserOrCompanyMethodType(type: string){
  69.       const ctrl: FormControl = (<any>this.form).controls.companyMethod.controls.type;
  70.       ctrl.setValue(type);
  71.     }
  72.  
  73.   //   subscribeCompanyTypeChanges() {
  74.   //     const pmCtrl = (<any>this.form).controls.companyMethod;
  75.   //     const userCtrl = pmCtrl.controls.user;
  76.   //     const companyCtrl = pmCtrl.controls.company;
  77.  
  78.   //     const changes$ = pmCtrl.controls.type.valueChanges;
  79.  
  80.   //     changes$.subscribe(companyMethodType => {
  81.  
  82.   //         if (companyMethodType === this.TestMethodType.Company) {
  83.  
  84.   //             Object.keys(companyCtrl.controls).forEach(key => {
  85.   //                 companyCtrl.controls[key].setValidators(this.initDataCompanyModel()[key][1]);
  86.   //                 companyCtrl.controls[key].updateValueAndValidity();
  87.   //             });
  88.  
  89.   //             Object.keys(companyCtrl.controls).forEach(key => {
  90.   //                 companyCtrl.controls[key].setValidators(null);
  91.   //                 companyCtrl.controls[key].updateValueAndValidity();
  92.   //             });
  93.   //         }
  94.  
  95.   //         if (companyMethodType === this.TestMethodType.User) {
  96.   //             Object.keys(userCtrl.controls).forEach(key => {
  97.   //                 userCtrl.controls[key].setValidators(null);
  98.   //                 userCtrl.controls[key].updateValueAndValidity();
  99.   //             });
  100.  
  101.   //             Object.keys(userCtrl.controls).forEach(key => {
  102.   //                 userCtrl.controls[key].setValidators(this.initDataUserModel()[key][1]);
  103.   //                 userCtrl.controls[key].updateValueAndValidity();
  104.   //             });
  105.   //         }
  106.  
  107.   //     });
  108.   // }
  109.  
  110.   onSubmit() {
  111.     var company: Company = new Company(
  112.       this.form.value.companyName,
  113.       this.form.value.companyAddress,
  114.       this.form.value.companyPhone,
  115.       this.form.value.email
  116.     );
  117.     var dto: RegisterUserDTO = new RegisterUserDTO();
  118.  
  119.     dto.Email = this.form.value.email;
  120.     dto.Password = this.form.value.password;
  121.     dto.ConfirmPassword = this.form.value.confirmPassword;
  122.     dto.Company = (this.isCompanyRegistered) ? company : null;
  123.  
  124.     this.authenticationService.signup(dto)
  125.       .subscribe(result => {
  126.         if (result === true) {
  127.           // login successful
  128.           this.router.navigateByUrl(this.returnUrl);
  129.         } else {
  130.           const dialogRef = this.dialog.open(SignUpErrorComponent);
  131.         }
  132.       }, err => {
  133.         const dialogRef = this.dialog.open(SignUpErrorComponent);
  134.       });
  135.   }
  136. }
  137.  
  138.  
  139. @Component({
  140.   selector: 'sign-up-error',
  141.   templateUrl: 'sign-up-error.html',
  142. })
  143. export class SignUpErrorComponent {
  144.   constructor(public dialogRef: MdDialogRef<SignUpErrorComponent>) { }
  145. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement