From a967835fa5076b44eef9914166c1f724ffe11ab0 Mon Sep 17 00:00:00 2001 From: Happy Days!!! <36199346+rosema2012@users.noreply.github.com> Date: Fri, 17 Jan 2025 12:56:20 +0100 Subject: [PATCH 1/2] Traducciones perfil tutor --- .../personal-info/personal-info.component.ts | 36 ++++++++++--------- .../personal-tutor-info.component.ts | 22 +++++------- 2 files changed, 28 insertions(+), 30 deletions(-) diff --git a/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/data/personal-info/personal-info.component.ts b/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/data/personal-info/personal-info.component.ts index 5308e00f8..192b99ebf 100644 --- a/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/data/personal-info/personal-info.component.ts +++ b/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/data/personal-info/personal-info.component.ts @@ -74,55 +74,57 @@ throw new Error('Method not implemented.'); } } onImageChange(event: any) { - // Si no hay evento o el archivo no está definido, simplemente retorna if (!event || !this.UsrPhoto.currentFileName) { return; } - + if (this.isUpdatingImage) { return; } - + const base64String = event; const currentFileName = this.UsrPhoto.currentFileName || ''; - + const validExtensions = ['jpg', 'jpeg', 'png', 'gif']; const fileExtension = currentFileName.split('.').pop()?.toLowerCase(); - - // Validar si el nombre del archivo o la extensión son inválidos + if (!fileExtension || !validExtensions.includes(fileExtension)) { - this.showAlert(); // Muestra la alerta de error - this.isUpdatingImage = true; - this.UsrPhoto.setValue(''); // Limpia el valor del archivo - this.isUpdatingImage = false; + this.showAlert(); + this.UsrPhoto.setValue(''); return; } - + if (base64String) { const img = new Image(); const canvas = document.createElement('canvas'); const ctx = canvas.getContext('2d'); img.src = `data:image/jpg;base64, ${base64String}`; - + img.onload = () => { if (ctx) { const newWidth = 200; const newHeight = 200; - + canvas.width = newWidth; canvas.height = newHeight; - + ctx.drawImage(img, 0, 0, newWidth, newHeight); const modifiedImageBase64 = canvas.toDataURL('image/jpg'); - + this.isUpdatingImage = true; this.UsrPhoto.setValue(modifiedImageBase64); // Actualiza la imagen redimensionada this.isUpdatingImage = false; - + + // Actualiza el avatar en el servicio OUserInfoService + this.oUserInfoService.setUserInfo({ + ...this.oUserInfoService.getUserInfo(), + avatar: `data:image/png;base64,${base64String}` + }); + ctx.clearRect(0, 0, canvas.width, canvas.height); // Limpia el canvas } }; - + img.onerror = () => { console.error('Error al cargar la imagen.'); }; diff --git a/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/data/personal-tutor-info/personal-tutor-info.component.ts b/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/data/personal-tutor-info/personal-tutor-info.component.ts index 01115036b..59b95a915 100644 --- a/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/data/personal-tutor-info/personal-tutor-info.component.ts +++ b/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/data/personal-tutor-info/personal-tutor-info.component.ts @@ -11,7 +11,7 @@ import { MainService } from 'src/app/shared/services/main.service'; export class PersonalTutorInfoComponent { @ViewChild("userId") inputTutorId: OTextInputComponent; @ViewChild("form") form: OFormComponent; - @ViewChild("UsrPhoto") UsrPhoto: OImageComponent; + @ViewChild("tutorsPhoto") tutorsPhoto: OImageComponent; isUpdatingImage: boolean = false; isUpdateOtherFile: boolean = false; mainInfo: any = {}; @@ -65,8 +65,7 @@ export class PersonalTutorInfoComponent { } } onImageChange(event: any) { - // Si no hay evento o el archivo no está definido, simplemente retorna - if (!event || !this.UsrPhoto.currentFileName) { + if (!event || !this.tutorsPhoto.currentFileName) { return; } @@ -75,17 +74,14 @@ export class PersonalTutorInfoComponent { } const base64String = event; - const currentFileName = this.UsrPhoto.currentFileName || ''; + const currentFileName = this.tutorsPhoto.currentFileName || ''; const validExtensions = ['jpg', 'jpeg', 'png', 'gif']; const fileExtension = currentFileName.split('.').pop()?.toLowerCase(); // Validar si el nombre del archivo o la extensión son inválidos if (!fileExtension || !validExtensions.includes(fileExtension)) { - this.showAlert(); // Muestra la alerta de error - this.isUpdatingImage = true; - this.UsrPhoto.setValue(''); // Limpia el valor del archivo - this.isUpdatingImage = false; + this.tutorsPhoto.setValue(''); // Limpia el valor del archivo return; } @@ -106,11 +102,11 @@ export class PersonalTutorInfoComponent { ctx.drawImage(img, 0, 0, newWidth, newHeight); const modifiedImageBase64 = canvas.toDataURL('image/jpg'); - this.isUpdatingImage = true; - this.UsrPhoto.setValue(modifiedImageBase64); // Actualiza la imagen redimensionada - this.isUpdatingImage = false; - - ctx.clearRect(0, 0, canvas.width, canvas.height); // Limpia el canvas + this.oUserInfoService.setUserInfo({ + ...this.oUserInfoService.getUserInfo(), + avatar:modifiedImageBase64 + }) + ctx.clearRect(0, 0, canvas.width, canvas.height); } }; From 45b7fac9bb77d17aaac573249133dff3f6f33043 Mon Sep 17 00:00:00 2001 From: Happy Days!!! <36199346+rosema2012@users.noreply.github.com> Date: Tue, 21 Jan 2025 11:05:39 +0100 Subject: [PATCH 2/2] Al cambia --- .../personal-info/personal-info.component.ts | 11 +++++++-- .../personal-tutor-info.component.ts | 23 ++++++++++++++----- 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/data/personal-info/personal-info.component.ts b/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/data/personal-info/personal-info.component.ts index 192b99ebf..ddc89a76f 100644 --- a/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/data/personal-info/personal-info.component.ts +++ b/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/data/personal-info/personal-info.component.ts @@ -22,6 +22,9 @@ throw new Error('Method not implemented.'); protected service: OntimizeService; avatar: any + defaultImage: string = 'assets/images/no-image.png'; // Ruta de la imagen por defecto + + constructor(protected injector: Injector,private router: Router, private mainService: MainService,protected dialogService: DialogService,private oUserInfoService: OUserInfoService) { this.service= this.injector.get(OntimizeService); this.configureService(); @@ -75,6 +78,10 @@ throw new Error('Method not implemented.'); } onImageChange(event: any) { if (!event || !this.UsrPhoto.currentFileName) { + this.oUserInfoService.setUserInfo({ + ...this.oUserInfoService.getUserInfo(), + avatar:this.defaultImage + }) return; } @@ -89,8 +96,8 @@ throw new Error('Method not implemented.'); const fileExtension = currentFileName.split('.').pop()?.toLowerCase(); if (!fileExtension || !validExtensions.includes(fileExtension)) { - this.showAlert(); - this.UsrPhoto.setValue(''); + //this.showAlert(); + //this.UsrPhoto.setValue(''); return; } diff --git a/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/data/personal-tutor-info/personal-tutor-info.component.ts b/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/data/personal-tutor-info/personal-tutor-info.component.ts index 59b95a915..0ca0c71cb 100644 --- a/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/data/personal-tutor-info/personal-tutor-info.component.ts +++ b/cd2024bfs4g1-frontend/src/main/ngx/src/app/main/data/personal-tutor-info/personal-tutor-info.component.ts @@ -17,6 +17,9 @@ export class PersonalTutorInfoComponent { mainInfo: any = {}; protected service: OntimizeService; + defaultImage: string = 'assets/images/no-image.png'; // Ruta de la imagen por defecto + + constructor(protected injector: Injector, private mainService: MainService,private router: Router,protected dialogService: DialogService,private oUserInfoService:OUserInfoService) { this.service= this.injector.get(OntimizeService); this.configureService(); @@ -66,9 +69,17 @@ export class PersonalTutorInfoComponent { } onImageChange(event: any) { if (!event || !this.tutorsPhoto.currentFileName) { + this.oUserInfoService.setUserInfo({ + ...this.oUserInfoService.getUserInfo(), + avatar:this.defaultImage + }) return; } + if(!this.tutorsPhoto.currentFileName){ + + } + if (this.isUpdatingImage) { return; } @@ -81,7 +92,7 @@ export class PersonalTutorInfoComponent { // Validar si el nombre del archivo o la extensión son inválidos if (!fileExtension || !validExtensions.includes(fileExtension)) { - this.tutorsPhoto.setValue(''); // Limpia el valor del archivo + //this.tutorsPhoto.setValue(''); // Limpia el valor del archivo return; } @@ -107,16 +118,17 @@ export class PersonalTutorInfoComponent { avatar:modifiedImageBase64 }) ctx.clearRect(0, 0, canvas.width, canvas.height); - } - }; + }} + img.onerror = () => { console.error('Error al cargar la imagen.'); }; - } + + }} - } + showAlert() { @@ -124,5 +136,4 @@ export class PersonalTutorInfoComponent { this.dialogService.error('Error de tipo de archivo', 'Por favor, sube una imagen con extensión .jpg, .jpeg .png o .gif'); } } - }