From 07e9d80c5766ab11018731eb1bc919385cc5dad6 Mon Sep 17 00:00:00 2001 From: Paola Date: Tue, 13 Jul 2021 15:02:00 -0600 Subject: [PATCH 01/31] Validacion Google para modificar perfil --- .../account/settings/settings.component.html | 19 +++++++++++++++---- .../account/settings/settings.component.ts | 11 ++++++++++- src/main/webapp/i18n/es/login.json | 3 ++- 3 files changed, 27 insertions(+), 6 deletions(-) diff --git a/src/main/webapp/app/account/settings/settings.component.html b/src/main/webapp/app/account/settings/settings.component.html index 68d5f1a..3e364b9 100644 --- a/src/main/webapp/app/account/settings/settings.component.html +++ b/src/main/webapp/app/account/settings/settings.component.html @@ -163,7 +163,7 @@ - + ------------------------------------------------------------------------------- --> @@ -273,6 +273,8 @@ Utilice una contraseña segura al realizar el cambio, este dato debe ser secreto ya que provee acceso a su cuenta.

+ +
@@ -297,9 +299,14 @@ data-cy="password" formControlName="password" placeholder="Su contraseña actual" + [readOnly]="isGoogle" />
{ // }); @@ -160,6 +168,7 @@ export class SettingsComponent implements OnInit { this.isSaving = false; } + //Llena el formulario para que se vea en pantalla protected updateForm(usuarioExtra: IUsuarioExtra): void { this.editForm.patchValue({ email: usuarioExtra.user?.login, diff --git a/src/main/webapp/i18n/es/login.json b/src/main/webapp/i18n/es/login.json index 4d5b925..9266406 100644 --- a/src/main/webapp/i18n/es/login.json +++ b/src/main/webapp/i18n/es/login.json @@ -9,7 +9,8 @@ }, "messages": { "error": { - "authentication": "Revise las credenciales e intente de nuevo " + "authentication": "Revise las credenciales e intente de nuevo ", + "isGoogle": "Al haber ingresado por medio de Google no cuenta con los permisos para modificar su contraseña" } }, "password": { From 48a894c455db28cd9b792c5be064c56d422dfc38 Mon Sep 17 00:00:00 2001 From: Paola Date: Tue, 13 Jul 2021 20:27:28 -0600 Subject: [PATCH 02/31] Alertas modificacion usuario --- .../account/settings/settings.component.html | 14 ++++++-- .../account/settings/settings.component.ts | 32 ++++++++++++------- .../usuario-extra/usuario-extra.model.ts | 4 +-- src/main/webapp/i18n/es/global.json | 3 +- 4 files changed, 36 insertions(+), 17 deletions(-) diff --git a/src/main/webapp/app/account/settings/settings.component.html b/src/main/webapp/app/account/settings/settings.component.html index 3e364b9..9cb0e3e 100644 --- a/src/main/webapp/app/account/settings/settings.component.html +++ b/src/main/webapp/app/account/settings/settings.component.html @@ -180,7 +180,7 @@
- +
+
+ +
@@ -221,7 +229,7 @@
- + >): void { result.pipe(finalize(() => this.onSaveFinalize())).subscribe( - () => this.onSaveSuccess(), - () => this.onSaveError() + () => (this.success = true), + response => this.processError(response) ); } + processError(response: HttpErrorResponse): void { + if (response.status === 400) { + this.error = true; + } + } protected onSaveSuccess(): void { this.previousState(); @@ -182,7 +190,7 @@ export class SettingsComponent implements OnInit { }); // Update swiper - this.profileIcon = parseInt(usuarioExtra.iconoPerfil!); + this.profileIcon = usuarioExtra.iconoPerfil!; this.profileIcons.forEach(icon => { if (parseInt(icon.name.split('C')[1]) === this.profileIcon) { icon.class = 'active'; @@ -219,7 +227,7 @@ export class SettingsComponent implements OnInit { ...new UsuarioExtra(), id: this.editForm.get(['id'])!.value, nombre: this.editForm.get(['nombre'])!.value, - iconoPerfil: this.editForm.get(['iconoPerfil'])!.value, + iconoPerfil: this.profileIcon, fechaNacimiento: this.editForm.get(['fechaNacimiento'])!.value ? dayjs(this.editForm.get(['fechaNacimiento'])!.value, DATE_TIME_FORMAT) : undefined, @@ -234,6 +242,8 @@ export class SettingsComponent implements OnInit { document.querySelectorAll('.active').forEach(e => e.classList.remove('active')); event.target.classList.add('active'); this.profileIcon = +event.target.getAttribute('id')! + 1; + + console.log(this.profileIcon); } } } diff --git a/src/main/webapp/app/entities/usuario-extra/usuario-extra.model.ts b/src/main/webapp/app/entities/usuario-extra/usuario-extra.model.ts index 5f4c94f..19bd7f3 100644 --- a/src/main/webapp/app/entities/usuario-extra/usuario-extra.model.ts +++ b/src/main/webapp/app/entities/usuario-extra/usuario-extra.model.ts @@ -8,7 +8,7 @@ import { EstadoUsuario } from 'app/entities/enumerations/estado-usuario.model'; export interface IUsuarioExtra { id?: number; nombre?: string; - iconoPerfil?: string | null; + iconoPerfil?: number | null; fechaNacimiento?: dayjs.Dayjs | null; estado?: EstadoUsuario; user?: IUser | null; @@ -21,7 +21,7 @@ export class UsuarioExtra implements IUsuarioExtra { constructor( public id?: number, public nombre?: string, - public iconoPerfil?: string | null, + public iconoPerfil?: number | null, public fechaNacimiento?: dayjs.Dayjs | null, public estado?: EstadoUsuario, public user?: IUser | null, diff --git a/src/main/webapp/i18n/es/global.json b/src/main/webapp/i18n/es/global.json index 8484710..bc24f01 100644 --- a/src/main/webapp/i18n/es/global.json +++ b/src/main/webapp/i18n/es/global.json @@ -65,7 +65,8 @@ "authenticated": { "prefix": "Si desea ", "link": "iniciar sesión", - "suffix": ", puede intentar con las cuentas predeterminadas:
- Administrador (usuario=\"admin\" y contraseña=\"admin\")
- Usuario (usuario=\"user\" y contraseña=\"user\")." + "suffix": ", puede intentar con las cuentas predeterminadas:
- Administrador (usuario=\"admin\" y contraseña=\"admin\")
- Usuario (usuario=\"user\" y contraseña=\"user\").", + "updateForm": "Ocurrió un error al actualizar su información, favor revisar los campos e intentar de nuevo" }, "register": { "noaccount": "¿Aún no tienes una cuenta?", From ab65108475b4ebfd5ee486dbc999f26ea87c2929 Mon Sep 17 00:00:00 2001 From: Paola Date: Tue, 13 Jul 2021 21:49:46 -0600 Subject: [PATCH 03/31] Validacion fecha para modifcacion perfil --- .../webapp/app/account/settings/settings.component.html | 2 ++ src/main/webapp/app/account/settings/settings.component.ts | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/webapp/app/account/settings/settings.component.html b/src/main/webapp/app/account/settings/settings.component.html index 9cb0e3e..33bfed4 100644 --- a/src/main/webapp/app/account/settings/settings.component.html +++ b/src/main/webapp/app/account/settings/settings.component.html @@ -390,6 +390,7 @@
- - -
-
-
diff --git a/src/main/webapp/app/entities/categoria/detail/categoria-detail.component.spec.ts b/src/main/webapp/app/entities/categoria/detail/categoria-detail.component.spec.ts deleted file mode 100644 index 506ac72..0000000 --- a/src/main/webapp/app/entities/categoria/detail/categoria-detail.component.spec.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { ActivatedRoute } from '@angular/router'; -import { of } from 'rxjs'; - -import { CategoriaDetailComponent } from './categoria-detail.component'; - -describe('Component Tests', () => { - describe('Categoria Management Detail Component', () => { - let comp: CategoriaDetailComponent; - let fixture: ComponentFixture; - - beforeEach(() => { - TestBed.configureTestingModule({ - declarations: [CategoriaDetailComponent], - providers: [ - { - provide: ActivatedRoute, - useValue: { data: of({ categoria: { id: 123 } }) }, - }, - ], - }) - .overrideTemplate(CategoriaDetailComponent, '') - .compileComponents(); - fixture = TestBed.createComponent(CategoriaDetailComponent); - comp = fixture.componentInstance; - }); - - describe('OnInit', () => { - it('Should load categoria on init', () => { - // WHEN - comp.ngOnInit(); - - // THEN - expect(comp.categoria).toEqual(expect.objectContaining({ id: 123 })); - }); - }); - }); -}); diff --git a/src/main/webapp/app/entities/categoria/detail/categoria-detail.component.ts b/src/main/webapp/app/entities/categoria/detail/categoria-detail.component.ts deleted file mode 100644 index 36ecdcf..0000000 --- a/src/main/webapp/app/entities/categoria/detail/categoria-detail.component.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Component, OnInit } from '@angular/core'; -import { ActivatedRoute } from '@angular/router'; - -import { ICategoria } from '../categoria.model'; - -@Component({ - selector: 'jhi-categoria-detail', - templateUrl: './categoria-detail.component.html', -}) -export class CategoriaDetailComponent implements OnInit { - categoria: ICategoria | null = null; - - constructor(protected activatedRoute: ActivatedRoute) {} - - ngOnInit(): void { - this.activatedRoute.data.subscribe(({ categoria }) => { - this.categoria = categoria; - }); - } - - previousState(): void { - window.history.back(); - } -} diff --git a/src/main/webapp/app/entities/categoria/route/categoria-routing.module.ts b/src/main/webapp/app/entities/categoria/route/categoria-routing.module.ts index d48d560..95acd27 100644 --- a/src/main/webapp/app/entities/categoria/route/categoria-routing.module.ts +++ b/src/main/webapp/app/entities/categoria/route/categoria-routing.module.ts @@ -3,7 +3,6 @@ import { RouterModule, Routes } from '@angular/router'; import { UserRouteAccessService } from 'app/core/auth/user-route-access.service'; import { CategoriaComponent } from '../list/categoria.component'; -import { CategoriaDetailComponent } from '../detail/categoria-detail.component'; import { CategoriaUpdateComponent } from '../update/categoria-update.component'; import { CategoriaRoutingResolveService } from './categoria-routing-resolve.service'; @@ -13,14 +12,6 @@ const categoriaRoute: Routes = [ component: CategoriaComponent, canActivate: [UserRouteAccessService], }, - { - path: ':id/view', - component: CategoriaDetailComponent, - resolve: { - categoria: CategoriaRoutingResolveService, - }, - canActivate: [UserRouteAccessService], - }, { path: 'new', component: CategoriaUpdateComponent, From b183dce88affce572623fb993db8bf9b3e4a9db2 Mon Sep 17 00:00:00 2001 From: Paola Date: Wed, 14 Jul 2021 20:04:35 -0600 Subject: [PATCH 06/31] arreglo validaciones en password perfil --- .../account/settings/settings.component.html | 60 ++++++++++++++++++- .../account/settings/settings.component.ts | 27 +++++++-- 2 files changed, 80 insertions(+), 7 deletions(-) diff --git a/src/main/webapp/app/account/settings/settings.component.html b/src/main/webapp/app/account/settings/settings.component.html index 94561c1..b60c1d9 100644 --- a/src/main/webapp/app/account/settings/settings.component.html +++ b/src/main/webapp/app/account/settings/settings.component.html @@ -293,10 +293,21 @@ name="passwordForm" role="form" novalidate - (ngSubmit)="save()" + (ngSubmit)="savePassword()" [formGroup]="passwordForm" > + +
+
+ The password and its confirmation do not match! +
+
This field is required. + + + Your password is required to be at least 4 characters. + + + + Your password cannot be longer than 50 characters. +
@@ -353,6 +380,22 @@ > This field is required.
+ + + Your password is required to be at least 4 characters. + + + + Your password cannot be longer than 50 characters. + @@ -384,6 +427,21 @@ > This field is required.
+ + Your password is required to be at least 4 characters. + + + + Your password cannot be longer than 50 characters. + diff --git a/src/main/webapp/app/account/settings/settings.component.ts b/src/main/webapp/app/account/settings/settings.component.ts index 0c5b543..82ee0f8 100644 --- a/src/main/webapp/app/account/settings/settings.component.ts +++ b/src/main/webapp/app/account/settings/settings.component.ts @@ -16,6 +16,7 @@ import { UsuarioExtraService } from 'app/entities/usuario-extra/service/usuario- import { AccountService } from 'app/core/auth/account.service'; import { LocalStorageService } from 'ngx-webstorage'; import { EMAIL_ALREADY_USED_TYPE, LOGIN_ALREADY_USED_TYPE } from '../../config/error.constants'; +import { PasswordService } from '../password/password.service'; @Component({ selector: 'jhi-settings', @@ -25,6 +26,7 @@ export class SettingsComponent implements OnInit { isSaving = false; success = false; error = false; + doNotMatch = false; usersSharedCollection: IUser[] = []; plantillasSharedCollection: IPlantilla[] = []; @@ -44,9 +46,9 @@ export class SettingsComponent implements OnInit { //form de la contraseña passwordForm = this.fb.group({ - password: [null, [Validators.required]], - passwordNew: [null, [Validators.required]], - passwordNewConfirm: [null, [Validators.required]], + password: [null, [Validators.required], Validators.minLength(8), Validators.maxLength(50)], + passwordNew: [null, [Validators.required], Validators.minLength(8), Validators.maxLength(50)], + passwordNewConfirm: [null, [Validators.required, Validators.minLength(8), Validators.maxLength(50)]], }); usuarioExtra: UsuarioExtra | null = null; @@ -89,7 +91,8 @@ export class SettingsComponent implements OnInit { protected activatedRoute: ActivatedRoute, protected fb: FormBuilder, protected accountService: AccountService, - private localStorageService: LocalStorageService + private localStorageService: LocalStorageService, + protected passwordService: PasswordService ) {} ngOnInit(): void { @@ -131,6 +134,20 @@ export class SettingsComponent implements OnInit { console.log(usuarioExtra.fechaNacimiento); this.subscribeToSaveResponse(this.usuarioExtraService.update(usuarioExtra)); + + window.location.reload(); + } + + savePassword(): void { + const password = this.passwordForm.get(['password'])!.value; + if (password !== this.passwordForm.get(['passwordNew'])!.value) { + this.doNotMatch = true; + } else { + this.passwordService.save(this.passwordForm.get(['passwordNew'])!.value, password).subscribe( + () => (this.success = true), + () => (this.error = true) + ); + } } trackUserById(index: number, item: IUser): number { @@ -237,8 +254,6 @@ export class SettingsComponent implements OnInit { }; } - protected CreateFormPassword(); - selectIcon(event: MouseEvent): void { if (event.target instanceof Element) { document.querySelectorAll('.active').forEach(e => e.classList.remove('active')); From fa906eb8dc262e6927e6449313b9df07497f53b7 Mon Sep 17 00:00:00 2001 From: Eduardo Quiros Date: Wed, 14 Jul 2021 20:38:41 -0600 Subject: [PATCH 07/31] corregir nombrado en texto por defecto --- .../categoria/delete/categoria-delete-dialog.component.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.html b/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.html index 3fae047..0289904 100644 --- a/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.html +++ b/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.html @@ -1,4 +1,4 @@ - + From 3fd224f4d4cc23e1af649d05fabbbb7536ff6be8 Mon Sep 17 00:00:00 2001 From: Eduardo Quiros Date: Wed, 14 Jul 2021 20:39:01 -0600 Subject: [PATCH 08/31] hacer que el metodo de eliminacion use la categoria entera esto es para eventualmente reemplazarla por un update --- .../categoria/delete/categoria-delete-dialog.component.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.ts b/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.ts index d6edc6a..e99a28e 100644 --- a/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.ts +++ b/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.ts @@ -16,8 +16,8 @@ export class CategoriaDeleteDialogComponent { this.activeModal.dismiss(); } - confirmDelete(id: number): void { - this.categoriaService.delete(id).subscribe(() => { + confirmDelete(categoria: ICategoria): void { + this.categoriaService.delete(categoria.id!).subscribe(() => { this.activeModal.close('deleted'); }); } From a7383be03abb140a160388159fea4d05cd20e93d Mon Sep 17 00:00:00 2001 From: Eduardo Quiros Date: Wed, 14 Jul 2021 20:49:19 -0600 Subject: [PATCH 09/31] actualizar categoria como INACTIVE esto es en lugar de eliminarlos de la base de datos, para mantener en existencia las entradas --- .../categoria/delete/categoria-delete-dialog.component.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.ts b/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.ts index e99a28e..4bffc15 100644 --- a/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.ts +++ b/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.ts @@ -1,5 +1,6 @@ import { Component } from '@angular/core'; import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; +import { EstadoCategoria } from 'app/entities/enumerations/estado-categoria.model'; import { ICategoria } from '../categoria.model'; import { CategoriaService } from '../service/categoria.service'; @@ -17,7 +18,8 @@ export class CategoriaDeleteDialogComponent { } confirmDelete(categoria: ICategoria): void { - this.categoriaService.delete(categoria.id!).subscribe(() => { + categoria.estado = EstadoCategoria.INACTIVE; + this.categoriaService.update(categoria).subscribe(() => { this.activeModal.close('deleted'); }); } From 6a25173ad8da137710db5ef9079ffab9b7ab725c Mon Sep 17 00:00:00 2001 From: Eduardo Quiros Date: Wed, 14 Jul 2021 21:11:34 -0600 Subject: [PATCH 10/31] agregar underscore al variable index esto se debe a que no se utiliza en la funcion, por lo que puede ser no utilizable en la llamada de la funcion --- .../webapp/app/entities/categoria/list/categoria.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/webapp/app/entities/categoria/list/categoria.component.ts b/src/main/webapp/app/entities/categoria/list/categoria.component.ts index d0a9206..31ddcff 100644 --- a/src/main/webapp/app/entities/categoria/list/categoria.component.ts +++ b/src/main/webapp/app/entities/categoria/list/categoria.component.ts @@ -38,7 +38,7 @@ export class CategoriaComponent implements OnInit { this.loadAll(); } - trackId(index: number, item: ICategoria): number { + trackId(_index: number, item: ICategoria): number { return item.id!; } From d8268b9ec2729a63d071a58fb02253a70230171a Mon Sep 17 00:00:00 2001 From: Mariela Bonilla Date: Thu, 15 Jul 2021 02:25:51 -0600 Subject: [PATCH 11/31] Modificacion de correos MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Se modifica el correo de reestablecer contraseña y el de activación de cuenta --- .../resources/i18n/messages_es.properties | 4 +- .../templates/mail/activationEmail.html | 331 ++++++++++++++++- .../templates/mail/creationEmail.html | 331 ++++++++++++++++- .../templates/mail/passwordResetEmail.html | 333 +++++++++++++++++- 4 files changed, 959 insertions(+), 40 deletions(-) diff --git a/src/main/resources/i18n/messages_es.properties b/src/main/resources/i18n/messages_es.properties index 48d7ea4..559f34a 100644 --- a/src/main/resources/i18n/messages_es.properties +++ b/src/main/resources/i18n/messages_es.properties @@ -6,7 +6,7 @@ error.message=Mensaje: # Activation email email.activation.title=Activación de DataSurvey -email.activation.greeting=Estimado/a {0} +email.activation.greeting=¡Hola, {0}! email.activation.text1=Su cuenta en DataSurvey ha sido creada. Por favor, haga clic en el siguiente enlace para activarla: email.activation.text2=Saludos, email.signature=Equipo de DataSurvey. @@ -16,6 +16,6 @@ email.creation.text1=Su cuenta en DataSurvey ha sido creada. Por favor, haga cli # Reset email email.reset.title=Reinicio de contraseña de DataSurvey -email.reset.greeting=Estimado/a {0} +email.reset.greeting=¡Hola, {0}! email.reset.text1=Se ha solicitado el reinicio de la contraseña para su cuenta en DataSurvey. Por favor, haga clic en el siguiente enlace para reiniciarla: email.reset.text2=Saludos, diff --git a/src/main/resources/templates/mail/activationEmail.html b/src/main/resources/templates/mail/activationEmail.html index 0bb53a2..ce17c16 100644 --- a/src/main/resources/templates/mail/activationEmail.html +++ b/src/main/resources/templates/mail/activationEmail.html @@ -1,20 +1,327 @@ - JHipster activation + + + + + + + JHipster activation + + + - -

Dear

-

Your JHipster account has been created, please click on the URL below to activate it:

-

- Activation link -

-

- Regards, -
- JHipster. -

+ + +
+
+ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  +
+ +
diff --git a/src/main/resources/templates/mail/creationEmail.html b/src/main/resources/templates/mail/creationEmail.html index 4e52898..88585ea 100644 --- a/src/main/resources/templates/mail/creationEmail.html +++ b/src/main/resources/templates/mail/creationEmail.html @@ -1,20 +1,327 @@ - JHipster creation + + + + + + + JHipster creation + + + - -

Dear

-

Your JHipster account has been created, please click on the URL below to access it:

-

- Login link -

-

- Regards, -
- JHipster. -

+ + +
+
+ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  +
+ +
diff --git a/src/main/resources/templates/mail/passwordResetEmail.html b/src/main/resources/templates/mail/passwordResetEmail.html index 290ca6d..8d43025 100644 --- a/src/main/resources/templates/mail/passwordResetEmail.html +++ b/src/main/resources/templates/mail/passwordResetEmail.html @@ -1,22 +1,327 @@ - JHipster password reset + + + + + + + JHipster password reset + + + - -

Dear

-

- For your JHipster account a password reset was requested, please click on the URL below to reset it: -

-

- Login link -

-

- Regards, -
- JHipster. -

+ + +
+
+ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  +
+ +
From ade37077cc8e9e88762766e6fbaa074babc4a714 Mon Sep 17 00:00:00 2001 From: Mariela Bonilla Date: Thu, 15 Jul 2021 02:29:31 -0600 Subject: [PATCH 12/31] Arreglo de estilos en las paginas MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Se modificó la página de activación de cuenta, ya estaba desactualizada se agregó un height:100% al registro para que el fondo quedará completamente coloreado y no se vieran dos colores --- .../account/activate/activate.component.html | 55 +++++++++++++++---- .../account/register/register.component.html | 2 +- src/main/webapp/i18n/es/global.json | 3 +- 3 files changed, 48 insertions(+), 12 deletions(-) diff --git a/src/main/webapp/app/account/activate/activate.component.html b/src/main/webapp/app/account/activate/activate.component.html index 46a5b40..c673ae0 100644 --- a/src/main/webapp/app/account/activate/activate.component.html +++ b/src/main/webapp/app/account/activate/activate.component.html @@ -1,16 +1,51 @@ -
-
-
-

Activation

+