Initial commit

This commit is contained in:
Norbert Schmidt
2023-01-02 09:30:17 +01:00
parent ef89af1dda
commit 3b3353fff1
316 changed files with 7522 additions and 1 deletions

View File

@@ -0,0 +1,125 @@
import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { AlertController, LoadingController } from '@ionic/angular';
import { AuthService } from '../../services/auth.service';
import { user, Auth } from '@angular/fire/auth';
import { AvatarService } from '../../services/avatar.service';
import { Camera, CameraResultType, CameraSource } from '@capacitor/camera';
import { TranslateService } from '@ngx-translate/core';
@Component({
selector: 'app-profile',
templateUrl: 'profile.page.html',
styleUrls: ['profile.page.scss'],
})
export class ProfilePage implements OnInit {
profile = null;
user = null;
photoURL: string = null;
displayName: string = null;
email: string = null;
emailVerified = false;
isAnonymous: boolean = null;
editDisplayName = false;
constructor(
private authService: AuthService,
private router: Router,
private avatarService: AvatarService,
private loadingController: LoadingController,
private alertController: AlertController,
private afAuth: Auth,
private translateService: TranslateService
) {
// not the nicest way, sort of duplicate to have a URL in the profile variable and also check later the user variable
this.avatarService.getUserProfile().subscribe((data) => {
if (data) {
this.profile = data;
if (this.profile.imageUrl !== null) {
this.photoURL = this.profile.imageUrl;
}
}
//console.log('data' , data);
});
user(this.afAuth).subscribe((response) => {
//fill the user to verify if someone is logged in
this.user = response;
if (response !== null) {
console.log(response);
this.displayName = response.displayName;
this.email = response.email;
this.photoURL = response.photoURL;
this.emailVerified = response.emailVerified;
this.isAnonymous = response.isAnonymous;
} else {
this.displayName = null;
this.email = null;
this.photoURL = null;
this.emailVerified = false;
this.isAnonymous = null;
}
});
}
ngOnInit(): void {}
editDisplayNameField() {
this.editDisplayName = true;
}
updateUserName(name: string) {
this.authService.updateUserName(name);
this.editDisplayName = false;
}
verifyEmail() {
this.authService.sendVerificationMail();
this.showAlert(
this.translateService.instant('profilePage.verification-mail-sent'),
this.translateService.instant('profilePage.check-also-spam')
);
}
async showAlert(header, message) {
const alert = await this.alertController.create({
header,
message,
buttons: ['OK'],
});
await alert.present();
}
async logout() {
await this.authService.logout();
this.router.navigateByUrl('/home', { replaceUrl: true });
}
async changeImage() {
const image = await Camera.getPhoto({
quality: 90,
allowEditing: false,
resultType: CameraResultType.Base64,
source: CameraSource.Photos, // Camera, Photos or Prompt!
});
if (image) {
const loading = await this.loadingController.create({
message: this.translateService.instant('profilePage.processing-image'),
});
await loading.present();
const result = await this.avatarService.uploadImage(image);
window.location.reload(); //ugly to force the image to reload after upload
loading.dismiss();
if (!result) {
const alert = await this.alertController.create({
header: this.translateService.instant('profilePage.upload-failed'),
message: this.translateService.instant('profilePage.problem-uploading-avatar'),
buttons: ['OK'],
});
await alert.present();
}
}
}
}