140 lines
4.1 KiB
TypeScript
140 lines
4.1 KiB
TypeScript
import { Component } from '@angular/core';
|
|
import { Validators, FormBuilder, FormGroup } from '@angular/forms';
|
|
import { ValidationManager } from 'ng2-validation-manager';
|
|
import { ApiService } from '../providers/api-service';
|
|
import {Router } from '@angular/router';
|
|
|
|
|
|
@Component({
|
|
templateUrl: 'register.component.html',
|
|
})
|
|
|
|
export class RegisterComponent {
|
|
signupForm: ValidationManager;
|
|
customerForm: ValidationManager;
|
|
organisationForm: ValidationManager;
|
|
years: Object[];
|
|
registerStatus: any;
|
|
registerStatusError = 'Error received, please try again.';
|
|
|
|
constructor(
|
|
private formBuilder: FormBuilder,
|
|
private router: Router,
|
|
private api: ApiService,
|
|
) {
|
|
this.years = [];
|
|
const max = new Date().getFullYear() - 10,
|
|
min = max - 140;
|
|
|
|
for (let i = max; i >= min; i--) {
|
|
this.years.push(i);
|
|
}
|
|
this.signupForm = new ValidationManager({
|
|
token: 'required',
|
|
usertype: 'required',
|
|
email: 'required|email',
|
|
password: 'required',
|
|
confirmpassword: 'required|equalTo:password'
|
|
});
|
|
this.customerForm = new ValidationManager({
|
|
display_name: 'required',
|
|
full_name: 'required',
|
|
postcode: 'required',
|
|
year_of_birth: 'required',
|
|
});
|
|
this.organisationForm = new ValidationManager({
|
|
name: 'required',
|
|
sector: 'required',
|
|
street_name: 'required',
|
|
town: 'required',
|
|
postcode: 'required',
|
|
});
|
|
}
|
|
|
|
onSubmitCustomer() {
|
|
|
|
console.log(this.signupForm.isValid());
|
|
if (!this.signupForm.isValid() && !this.customerForm.isValid()) {
|
|
console.log('Not Valid!');
|
|
this.registerStatus = 'validation_failed';
|
|
console.log(this.registerStatus);
|
|
return;
|
|
}
|
|
const signupForm = this.signupForm.getForm().value;
|
|
const customerForm = this.customerForm.getForm().value;
|
|
|
|
const data = {
|
|
token: signupForm.token,
|
|
usertype: signupForm.usertype,
|
|
email: signupForm.email,
|
|
password: signupForm.password,
|
|
display_name: customerForm.display_name,
|
|
full_name: customerForm.full_name,
|
|
postcode: customerForm.postcode,
|
|
year_of_birth: customerForm.year_of_birth,
|
|
};
|
|
console.log(data);
|
|
this.api
|
|
.register(data)
|
|
.subscribe(
|
|
result => {
|
|
this.registerStatus = 'success';
|
|
this.router.navigate(['/dashboard']);
|
|
},
|
|
error => {
|
|
console.log('Register Error');
|
|
console.log(error);
|
|
try {
|
|
this.registerStatusError = '"' + error.error.error + '" Error, ' + error.error.message;
|
|
} catch (e) {
|
|
this.registerStatusError = 'There was a server error, please try again later.';
|
|
}
|
|
this.registerStatus = 'send_failed';
|
|
}
|
|
);
|
|
}
|
|
onSubmitOrganisation() {
|
|
|
|
console.log(this.signupForm.isValid());
|
|
if (!this.signupForm.isValid() || !this.organisationForm.isValid()) {
|
|
console.log('Not Valid!');
|
|
this.registerStatus = 'validation_failed';
|
|
console.log(this.registerStatus);
|
|
return;
|
|
}
|
|
const signupForm = this.signupForm.getForm().value;
|
|
const organisationForm = this.organisationForm.getForm().value;
|
|
|
|
const data = {
|
|
token: signupForm.token,
|
|
usertype: signupForm.usertype,
|
|
email: signupForm.email,
|
|
password: signupForm.password,
|
|
name: organisationForm.name,
|
|
sector: organisationForm.sector,
|
|
street_name: organisationForm.street_name,
|
|
town: organisationForm.town,
|
|
postcode: organisationForm.postcode,
|
|
};
|
|
this.api
|
|
.register(data)
|
|
.subscribe(
|
|
result => {
|
|
this.registerStatus = 'success';
|
|
this.router.navigate(['/dashboard']);
|
|
},
|
|
error => {
|
|
console.log(error);
|
|
try {
|
|
this.registerStatusError = '"' + error.error.error + '" Error, ' + error.error.message;
|
|
} catch (e) {
|
|
this.registerStatusError = 'There was a server error, please try again later.';
|
|
}
|
|
this.registerStatus = 'send_failed';
|
|
console.log(this.registerStatus);
|
|
}
|
|
);
|
|
}
|
|
|
|
|
|
}
|