Commit e16d05d1 by Muhammad Usman

personal details fixes

parent 420fffb8
......@@ -98,7 +98,7 @@
<div class="col-md-12 d-flex justify-content-end mt-5">
<button (click)="updateProfile()" pButton [icon]="isSaving ? 'pi pi-spin pi-spinner' : 'pi pi-save'" label="Update Information" class="ui-button-info" [disabled]="isLoading || isSaving">
<button (click)="updateProfile()" pButton [icon]="isSaving ? 'pi pi-spin pi-spinner' : 'pi pi-save'" label="Update Information" class="ui-button-info update-info" [disabled]="isLoading || isSaving">
</button>
</div>
</form>
......
......@@ -56,4 +56,9 @@
.personal-details {
padding: 5%;
}
.update-info {
width: 100%;
display: block;
}
}
......@@ -75,7 +75,7 @@ export class PersonalDetailsComponent extends BaseComponent implements OnInit {
this.ps.getJobTitles({JobTitle: $event.query})
.pipe(takeUntil(this.componentInView))
.subscribe(response => {
this.jobTitles = response;
this.jobTitles = response.filter(r => r.JobTitle);
}, err => {
this.hs.handleHttpError(err);
})
......@@ -93,6 +93,7 @@ export class PersonalDetailsComponent extends BaseComponent implements OnInit {
if (this.careerProfile.Candidate.EmploymentPreference) {
this.careerProfile.Candidate.EmploymentPreference = this.careerProfile.Candidate.EmploymentPreference.map(p => p.Value);
}
this.ps.careerProfileUpdated = this.careerProfile;
this.isLoading = false;
}, err => {
this.hs.handleHttpError(err);
......@@ -119,8 +120,8 @@ export class PersonalDetailsComponent extends BaseComponent implements OnInit {
}
updateAddress($event): void {
this.careerProfile = {...this.careerProfile, ...{GoogleAddress: $event.address}};
this.cdr.detectChanges();
console.log($event);
this.careerProfile.GoogleAddress = $event.address;
}
changedAddress(): void {
......
......@@ -3,59 +3,58 @@ import { Directive, ElementRef, EventEmitter, OnInit, Output } from '@angular/co
declare var google: any;
@Directive({
selector: '[appGooglePlacesAutocomplete]'
selector: '[appGooglePlacesAutocomplete]'
})
export class GooglePlacesAutocompleteDirective implements OnInit {
@Output() readonly addressSelected: EventEmitter<any> = new EventEmitter();
private readonly element: HTMLInputElement;
static getFormattedAddress(place): any {
const googleLocation: any = {};
googleLocation.lat = place.geometry.location.lat();
googleLocation.lng = place.geometry.location.lng();
for (const i in place.address_components) {
if (place.address_components.hasOwnProperty(i)) {
const item = place.address_components[i];
googleLocation.address = place.formatted_address;
// if (item.types.indexOf('administrative_area_level_1') > -1) {
// googleLocation.city = item.long_name;
// } else if (item.types.indexOf('administrative_area_level_2') > -1) {
// googleLocation.town_area = item.long_name;
// } else if (item.types.indexOf('administrative_area_level_3') > -1) {
// if (!googleLocation.town_area) {
// googleLocation.town_area = item.long_name;
// }
// } else if (item.types.indexOf('country') > -1) {
// googleLocation.country = item.long_name;
// } else if (item.types.indexOf('postal_code') > -1) {
// googleLocation.zipcode = item.short_name;
// } else if (item.types.indexOf('route') > -1) {
// googleLocation.street = item.long_name;
// } else if (item.types.indexOf('route') > -1) {
// googleLocation.street = item.long_name;
// } else if (item.types.indexOf('street_number') > -1) {
// googleLocation.building_no = item.long_name;
@Output() readonly addressSelected: EventEmitter<any> = new EventEmitter();
private readonly element: HTMLInputElement;
static getFormattedAddress(place): any {
const googleLocation: any = {};
googleLocation.lat = place.geometry.location.lat();
googleLocation.lng = place.geometry.location.lng();
googleLocation.address = `${place.name} ${place.formatted_address}`;
// for (const i in place.address_components) {
// if (place.address_components.hasOwnProperty(i)) {
// const item = place.address_components[i];
// googleLocation.address = place.formatted_address;
// if (item.types.indexOf('administrative_area_level_1') > -1) {
// googleLocation.city = item.long_name;
// } else if (item.types.indexOf('administrative_area_level_2') > -1) {
// googleLocation.town_area = item.long_name;
// } else if (item.types.indexOf('administrative_area_level_3') > -1) {
// if (!googleLocation.town_area) {
// googleLocation.town_area = item.long_name;
// }
// } else if (item.types.indexOf('country') > -1) {
// googleLocation.country = item.long_name;
// } else if (item.types.indexOf('postal_code') > -1) {
// googleLocation.zipcode = item.short_name;
// } else if (item.types.indexOf('route') > -1) {
// googleLocation.street = item.long_name;
// } else if (item.types.indexOf('route') > -1) {
// googleLocation.street = item.long_name;
// } else if (item.types.indexOf('street_number') > -1) {
// googleLocation.building_no = item.long_name;
// }
// }
// }
}
return googleLocation;
}
return googleLocation;
}
constructor(private elRef: ElementRef) {
this.element = elRef.nativeElement;
}
constructor(private elRef: ElementRef) {
this.element = elRef.nativeElement;
}
ngOnInit(): void {
const autocomplete = new google.maps.places.Autocomplete(this.element);
google.maps.event.addListener(autocomplete, 'place_changed', () => {
this.addressSelected.emit(GooglePlacesAutocompleteDirective.getFormattedAddress(autocomplete.getPlace()));
});
}
ngOnInit(): void {
const autocomplete = new google.maps.places.Autocomplete(this.element);
google.maps.event.addListener(autocomplete, 'place_changed', () => {
this.addressSelected.emit(GooglePlacesAutocompleteDirective.getFormattedAddress(autocomplete.getPlace()));
});
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment