Merge branch 'dev' into feature/US-20
This commit is contained in:
commit
94d2bd402a
|
@ -168,7 +168,11 @@ public class AccountResource {
|
||||||
public void requestPasswordReset(@RequestBody String mail) {
|
public void requestPasswordReset(@RequestBody String mail) {
|
||||||
Optional<User> user = userService.requestPasswordReset(mail);
|
Optional<User> user = userService.requestPasswordReset(mail);
|
||||||
if (user.isPresent()) {
|
if (user.isPresent()) {
|
||||||
|
if (user.get().getFirstName() == null || (!user.get().getFirstName().equals("IsGoogle"))) {
|
||||||
mailService.sendPasswordResetMail(user.get());
|
mailService.sendPasswordResetMail(user.get());
|
||||||
|
} else {
|
||||||
|
throw new UserIsGoogleException();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// Pretend the request has been successful to prevent checking which emails really exist
|
// Pretend the request has been successful to prevent checking which emails really exist
|
||||||
// but log that an invalid attempt has been made
|
// but log that an invalid attempt has been made
|
||||||
|
|
|
@ -13,6 +13,7 @@ public final class ErrorConstants {
|
||||||
public static final URI EMAIL_ALREADY_USED_TYPE = URI.create(PROBLEM_BASE_URL + "/email-already-used");
|
public static final URI EMAIL_ALREADY_USED_TYPE = URI.create(PROBLEM_BASE_URL + "/email-already-used");
|
||||||
public static final URI LOGIN_ALREADY_USED_TYPE = URI.create(PROBLEM_BASE_URL + "/login-already-used");
|
public static final URI LOGIN_ALREADY_USED_TYPE = URI.create(PROBLEM_BASE_URL + "/login-already-used");
|
||||||
public static final URI EMAIL_NOT_EXISTS_TYPE = URI.create(PROBLEM_BASE_URL + "/email-not-exists");
|
public static final URI EMAIL_NOT_EXISTS_TYPE = URI.create(PROBLEM_BASE_URL + "/email-not-exists");
|
||||||
|
public static final URI USER_IS_GOOGLE_TYOE = URI.create(PROBLEM_BASE_URL + "/user-is-google");
|
||||||
|
|
||||||
private ErrorConstants() {}
|
private ErrorConstants() {}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
package org.datasurvey.web.rest.errors;
|
||||||
|
|
||||||
|
public class UserIsGoogleException extends BadRequestAlertException {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
public UserIsGoogleException() {
|
||||||
|
super(ErrorConstants.USER_IS_GOOGLE_TYOE, "User Is Google", "userManagement", "userisgoogle");
|
||||||
|
}
|
||||||
|
}
|
|
@ -5,23 +5,23 @@ error.status=Estado:
|
||||||
error.message=Mensaje:
|
error.message=Mensaje:
|
||||||
|
|
||||||
# Activation email
|
# Activation email
|
||||||
email.activation.title=Activación de DataSurvey
|
email.activation.title=Confirmación de correo con DataSurvey
|
||||||
email.activation.greeting=¡Hola, {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.text1=¡Nos alegra que sea parte de DataSurvey! Como último paso debe confirmar su dirección de correo haciendo clic en el siguiente enlace:
|
||||||
email.activation.text2=Saludos,
|
email.activation.text2=Saludos,
|
||||||
email.signature=Equipo de DataSurvey.
|
email.signature=Equipo de DataSurvey
|
||||||
|
|
||||||
# Creation email
|
# Creation email
|
||||||
email.creation.text1=Su cuenta en DataSurvey ha sido creada. Por favor, haga clic en el siguiente enlace para utilizarla:
|
email.creation.text1=Su cuenta en DataSurvey ha sido creada. Por favor, haga clic en el siguiente enlace para utilizarla:
|
||||||
|
|
||||||
# Reset email
|
# Reset email
|
||||||
email.reset.title=Reinicio de contraseña de DataSurvey
|
email.reset.title=Restablecer contraseña de DataSurvey
|
||||||
email.reset.greeting=¡Hola, {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.text1=Se ha solicitado una modificación de contraseña para su cuenta en DataSurvey. Por favor haga clic en el siguiente enlace para restablecerla.
|
||||||
email.reset.text2=Saludos,
|
email.reset.text2=Saludos,
|
||||||
|
|
||||||
# Password Restored Mail
|
# Password Restored Mail
|
||||||
email.restored.title=Se restaleció su contraseña en DataSurvey
|
email.restored.title=Se restableció su contraseña en DataSurvey
|
||||||
email.restored.greeting=¡Hola, {0}!
|
email.restored.greeting=¡Hola, {0}!
|
||||||
email.restored.text1=Se ha restablecido correctamente su contraseña en DataSurvey.
|
email.restored.text1=Se ha restablecido correctamente su contraseña en DataSurvey.
|
||||||
email.restored.text2=Saludos,
|
email.restored.text2=Saludos,
|
||||||
|
|
|
@ -264,7 +264,7 @@
|
||||||
th:with="url=(@{|${baseUrl}/account/activate?key=${user.activationKey}|})"
|
th:with="url=(@{|${baseUrl}/account/activate?key=${user.activationKey}|})"
|
||||||
th:href="${url}"
|
th:href="${url}"
|
||||||
class="btn btn-primary"
|
class="btn btn-primary"
|
||||||
>Activar cuenta</a
|
>Confirmar correo electrónico</a
|
||||||
>
|
>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
@ -293,7 +293,7 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td style="text-align: left; padding-right: 10px">
|
<td style="text-align: left; padding-right: 10px">
|
||||||
<h3 class="heading">Acerca de</h3>
|
<h3 class="heading">Acerca de</h3>
|
||||||
<p>DataSurvey es su compañero más cercano para poder recolectar información valiosa para usted.</p>
|
<p>DataSurvey es su compañero más cercano para poder recolectar información valiosa para usted</p>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
@ -304,7 +304,7 @@
|
||||||
<td style="text-align: left; padding-left: 5px; padding-right: 5px">
|
<td style="text-align: left; padding-left: 5px; padding-right: 5px">
|
||||||
<h3 class="heading">Información de contacto</h3>
|
<h3 class="heading">Información de contacto</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li><span class="text">datasurvey@gmail.com</span></li>
|
<li><span href="mailto:datasurveyapp@gmail.com" class="text">datasurveyapp@gmail.com</span></li>
|
||||||
</ul>
|
</ul>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -304,7 +304,7 @@
|
||||||
<td style="text-align: left; padding-left: 5px; padding-right: 5px">
|
<td style="text-align: left; padding-left: 5px; padding-right: 5px">
|
||||||
<h3 class="heading">Información de contacto</h3>
|
<h3 class="heading">Información de contacto</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li><span class="text">datasurvey@gmail.com</span></li>
|
<li><span href="mailto:datasurveyapp@gmail.com" class="text">datasurveyapp@gmail.com</span></li>
|
||||||
</ul>
|
</ul>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -304,7 +304,7 @@
|
||||||
<td style="text-align: left; padding-left: 5px; padding-right: 5px">
|
<td style="text-align: left; padding-left: 5px; padding-right: 5px">
|
||||||
<h3 class="heading">Información de contacto</h3>
|
<h3 class="heading">Información de contacto</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li><span class="text">datasurvey@gmail.com</span></li>
|
<li><span href="mailto:datasurveyapp@gmail.com" class="text">datasurveyapp@gmail.com</span></li>
|
||||||
</ul>
|
</ul>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -267,7 +267,7 @@
|
||||||
>If you did not make this change, please notify the following email immediately</span
|
>If you did not make this change, please notify the following email immediately</span
|
||||||
>
|
>
|
||||||
|
|
||||||
<a th:href="#{'mailto:'+email.restored.email}" th:text="#{email.restored.email}">datasurvey@gmail.com</a>
|
<a href="mailto:datasurveyapp@gmail.com" th:text="#{email.restored.email}">datasurveyapp@gmail.com</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="text" style="padding: 0.2em 2.5em 0.5em; text-align: center">
|
<div class="text" style="padding: 0.2em 2.5em 0.5em; text-align: center">
|
||||||
|
@ -306,7 +306,7 @@
|
||||||
<td style="text-align: left; padding-left: 5px; padding-right: 5px">
|
<td style="text-align: left; padding-left: 5px; padding-right: 5px">
|
||||||
<h3 class="heading">Información de contacto</h3>
|
<h3 class="heading">Información de contacto</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li><span class="text">datasurvey@gmail.com</span></li>
|
<li><span href="mailto:datasurveyapp@gmail.com" class="text">datasurveyapp@gmail.com</span></li>
|
||||||
</ul>
|
</ul>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -15,13 +15,12 @@
|
||||||
style="color: #727070; font-weight: 700; font-size: 1.3rem"
|
style="color: #727070; font-weight: 700; font-size: 1.3rem"
|
||||||
jhiTranslate="activate.title"
|
jhiTranslate="activate.title"
|
||||||
>
|
>
|
||||||
Activación de Cuenta
|
Registro Completado
|
||||||
</h4>
|
</h4>
|
||||||
</div>
|
</div>
|
||||||
<div *ngIf="success">
|
<div *ngIf="success">
|
||||||
<div class="alert alert-success text-center my-2">
|
<div class="alert alert-success text-center my-2">
|
||||||
<span jhiTranslate="activate.messages.success"><strong>Your user account has been activated.</strong></span>
|
<span jhiTranslate="activate.messages.success"></span>
|
||||||
<span jhiTranslate="global.messages.info.authenticated.link">sign in</span>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="d-flex justify-content-center">
|
<div class="d-flex justify-content-center">
|
||||||
<button class="ds-btn ds-btn--primary" routerLink="/login" jhiTranslate="global.messages.info.authenticated.link">
|
<button class="ds-btn ds-btn--primary" routerLink="/login" jhiTranslate="global.messages.info.authenticated.link">
|
||||||
|
@ -30,9 +29,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div *ngIf="error">
|
<div *ngIf="error">
|
||||||
<div class="alert alert-danger text-center my-2" jhiTranslate="activate.messages.error">
|
<div class="alert alert-danger text-center my-2" jhiTranslate="activate.messages.error"></div>
|
||||||
<strong>Your user could not be activated.</strong> Please use the registration form to sign up.
|
|
||||||
</div>
|
|
||||||
<div class="d-flex justify-content-center">
|
<div class="d-flex justify-content-center">
|
||||||
<button class="ds-btn ds-btn--primary" routerLink="/account/register" jhiTranslate="global.registerLink">
|
<button class="ds-btn ds-btn--primary" routerLink="/account/register" jhiTranslate="global.registerLink">
|
||||||
create account</button
|
create account</button
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
style="color: #727070; font-weight: 700; font-size: 1.3rem"
|
style="color: #727070; font-weight: 700; font-size: 1.3rem"
|
||||||
jhiTranslate="reset.request.title"
|
jhiTranslate="reset.request.title"
|
||||||
>
|
>
|
||||||
RESET YOUR PASSWORDD
|
RESET YOUR PASSWORD
|
||||||
</h4>
|
</h4>
|
||||||
<p class="mb-4" style="color: rgba(146, 146, 146, 0.664)" jhiTranslate="reset.request.messages.info">
|
<p class="mb-4" style="color: rgba(146, 146, 146, 0.664)" jhiTranslate="reset.request.messages.info">
|
||||||
Enter the email address you used to register.
|
Enter the email address you used to register.
|
||||||
|
@ -27,12 +27,15 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="alert alert-danger" *ngIf="errorEmailNotExists" jhiTranslate="reset.request.messages.error.emailnotexists">
|
<div class="alert alert-danger" *ngIf="errorEmailNotExists" jhiTranslate="reset.request.messages.error.emailnotexists">
|
||||||
<strong>Email no exists!</strong> Please choose another one.
|
<strong>Email no exists!</strong>
|
||||||
|
</div>
|
||||||
|
<div class="alert alert-danger" *ngIf="errorUserIsGoogle" jhiTranslate="reset.request.messages.error.userisgoogle">
|
||||||
|
<strong>No cuenta con el permiso de restablecer su contraseña al haber activado su cuenta por medio de Google</strong>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<form *ngIf="!success" name="form" class="ds-form" role="form" (ngSubmit)="requestReset()" [formGroup]="resetRequestForm">
|
<form *ngIf="!success" name="form" class="ds-form" role="form" (ngSubmit)="requestReset()" [formGroup]="resetRequestForm">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="form-label" for="email" jhiTranslate="global.form.email.label">Email</label>
|
<label class="form-control-label" for="email" jhiTranslate="global.form.email.label">Email</label>
|
||||||
<input
|
<input
|
||||||
type="email"
|
type="email"
|
||||||
class="form-control"
|
class="form-control"
|
||||||
|
@ -65,25 +68,6 @@
|
||||||
>
|
>
|
||||||
Your email is invalid.
|
Your email is invalid.
|
||||||
</small>
|
</small>
|
||||||
|
|
||||||
<small
|
|
||||||
class="form-text text-danger"
|
|
||||||
*ngIf="resetRequestForm.get('email')?.errors?.minlength"
|
|
||||||
jhiTranslate="global.messages.validate.email.minlength"
|
|
||||||
>
|
|
||||||
Your email is required to be at least 5 characters.
|
|
||||||
</small>
|
|
||||||
|
|
||||||
<small
|
|
||||||
class="form-text text-danger"
|
|
||||||
*ngIf="resetRequestForm.get('email')?.errors?.maxlength"
|
|
||||||
jhiTranslate="global.messages.validate.email.maxlength"
|
|
||||||
>
|
|
||||||
Your email cannot be longer than 100 characters.
|
|
||||||
</small>
|
|
||||||
<small class="form-text text-danger" *ngIf="resetRequestForm.get('email')?.errors?.email">
|
|
||||||
Se requiere un correo electrónico válido.
|
|
||||||
</small>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@ import { FormBuilder, Validators } from '@angular/forms';
|
||||||
|
|
||||||
import { PasswordResetInitService } from './password-reset-init.service';
|
import { PasswordResetInitService } from './password-reset-init.service';
|
||||||
import { HttpErrorResponse } from '@angular/common/http';
|
import { HttpErrorResponse } from '@angular/common/http';
|
||||||
import { EMAIL_NOT_EXISTS_TYPE } from '../../../config/error.constants';
|
import { EMAIL_NOT_EXISTS_TYPE, USER_IS_GOOGLE_TYPE } from '../../../config/error.constants';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'jhi-password-reset-init',
|
selector: 'jhi-password-reset-init',
|
||||||
|
@ -13,6 +13,7 @@ export class PasswordResetInitComponent implements AfterViewInit {
|
||||||
@ViewChild('email', { static: false })
|
@ViewChild('email', { static: false })
|
||||||
email?: ElementRef;
|
email?: ElementRef;
|
||||||
errorEmailNotExists = false;
|
errorEmailNotExists = false;
|
||||||
|
errorUserIsGoogle = false;
|
||||||
error = false;
|
error = false;
|
||||||
success = false;
|
success = false;
|
||||||
resetRequestForm = this.fb.group({
|
resetRequestForm = this.fb.group({
|
||||||
|
@ -29,6 +30,7 @@ export class PasswordResetInitComponent implements AfterViewInit {
|
||||||
|
|
||||||
requestReset(): void {
|
requestReset(): void {
|
||||||
this.errorEmailNotExists = false;
|
this.errorEmailNotExists = false;
|
||||||
|
this.errorUserIsGoogle = false;
|
||||||
this.passwordResetInitService.save(this.resetRequestForm.get(['email'])!.value).subscribe(
|
this.passwordResetInitService.save(this.resetRequestForm.get(['email'])!.value).subscribe(
|
||||||
() => (this.success = true),
|
() => (this.success = true),
|
||||||
response => this.processError(response)
|
response => this.processError(response)
|
||||||
|
@ -42,6 +44,8 @@ export class PasswordResetInitComponent implements AfterViewInit {
|
||||||
processError(response: HttpErrorResponse): void {
|
processError(response: HttpErrorResponse): void {
|
||||||
if (response.status === 400 && response.error.type === EMAIL_NOT_EXISTS_TYPE) {
|
if (response.status === 400 && response.error.type === EMAIL_NOT_EXISTS_TYPE) {
|
||||||
this.errorEmailNotExists = true;
|
this.errorEmailNotExists = true;
|
||||||
|
} else if (response.status === 400 && response.error.type === USER_IS_GOOGLE_TYPE) {
|
||||||
|
this.errorUserIsGoogle = true;
|
||||||
} else {
|
} else {
|
||||||
this.error = true;
|
this.error = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,13 +8,21 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="card-body p-4">
|
<div class="card-body p-4">
|
||||||
<div class="text-center w-75 m-auto">
|
<div class="text-center w-75 m-auto" *ngIf="!success">
|
||||||
<h4 class="text-dark-50 text-center pb-0 fw-bold p-0 m-0" style="color: #727070; font-weight: 700; font-size: 1.3rem">
|
<h4 class="text-dark-50 text-center pb-0 fw-bold p-0 m-0" style="color: #727070; font-weight: 700; font-size: 1.3rem">
|
||||||
REGISTRARSE
|
REGISTRARSE
|
||||||
</h4>
|
</h4>
|
||||||
<p class="mb-4" style="color: rgba(146, 146, 146, 0.664)">Ingrese sus datos para registrarse.</p>
|
<p class="mb-4" style="color: rgba(146, 146, 146, 0.664)">Ingrese sus datos para registrarse</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="text-center w-75 m-auto" *ngIf="success">
|
||||||
|
<h4 class="text-dark-50 text-center pb-0 fw-bold p-0 m-0" style="color: #727070; font-weight: 700; font-size: 1.3rem">
|
||||||
|
¡Gracias por registrarse en DataSurvey!
|
||||||
|
</h4>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr />
|
||||||
|
|
||||||
<div class="alert alert-success" *ngIf="success" jhiTranslate="register.messages.success">
|
<div class="alert alert-success" *ngIf="success" jhiTranslate="register.messages.success">
|
||||||
<strong>Registration saved!</strong> Please check your email for confirmation.
|
<strong>Registration saved!</strong> Please check your email for confirmation.
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -63,6 +63,7 @@ describe('Component Tests', () => {
|
||||||
login: '',
|
login: '',
|
||||||
langKey: 'es',
|
langKey: 'es',
|
||||||
name: '',
|
name: '',
|
||||||
|
firstName: 'normalUser',
|
||||||
profileIcon: 1,
|
profileIcon: 1,
|
||||||
isAdmin: 0,
|
isAdmin: 0,
|
||||||
isGoogle: 0,
|
isGoogle: 0,
|
||||||
|
|
|
@ -84,6 +84,7 @@ export class RegisterComponent implements AfterViewInit {
|
||||||
const login = this.registerForm.get(['email'])!.value;
|
const login = this.registerForm.get(['email'])!.value;
|
||||||
const email = this.registerForm.get(['email'])!.value;
|
const email = this.registerForm.get(['email'])!.value;
|
||||||
const name = this.registerForm.get(['name'])!.value;
|
const name = this.registerForm.get(['name'])!.value;
|
||||||
|
const firstName = 'normalUser';
|
||||||
|
|
||||||
this.registerService
|
this.registerService
|
||||||
.save({
|
.save({
|
||||||
|
@ -92,6 +93,7 @@ export class RegisterComponent implements AfterViewInit {
|
||||||
password,
|
password,
|
||||||
langKey: this.translateService.currentLang,
|
langKey: this.translateService.currentLang,
|
||||||
name,
|
name,
|
||||||
|
firstName,
|
||||||
profileIcon: this.profileIcon,
|
profileIcon: this.profileIcon,
|
||||||
isAdmin: 0,
|
isAdmin: 0,
|
||||||
isGoogle: 0,
|
isGoogle: 0,
|
||||||
|
|
|
@ -7,6 +7,7 @@ export class Registration {
|
||||||
public name: string,
|
public name: string,
|
||||||
public profileIcon: number,
|
public profileIcon: number,
|
||||||
public isAdmin: number,
|
public isAdmin: number,
|
||||||
public isGoogle: number
|
public isGoogle: number,
|
||||||
|
public firstName: string
|
||||||
) {}
|
) {}
|
||||||
}
|
}
|
||||||
|
|
|
@ -175,7 +175,7 @@
|
||||||
<p class="ds-title">Perfil</p>
|
<p class="ds-title">Perfil</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<p class="ds-subtitle">Información general de su usuario, el correo electrónico es su identificador en DataSurvey.</p>
|
<p class="ds-subtitle">Información general de su usuario, el correo electrónico es su identificador en DataSurvey</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -246,7 +246,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="row mb-4">
|
<div class="row mb-4">
|
||||||
<div class="form-group w-100">
|
<div class="form-group w-100">
|
||||||
<label for="iconoPerfil">Ícono de perfil</label>
|
<label>Ícono de perfil</label>
|
||||||
<div class="d-flex">
|
<div class="d-flex">
|
||||||
<jhi-swiper style="width: 22.5rem !important" [data]="profileIcons" (onSelectEvent)="selectIcon($event)"></jhi-swiper>
|
<jhi-swiper style="width: 22.5rem !important" [data]="profileIcons" (onSelectEvent)="selectIcon($event)"></jhi-swiper>
|
||||||
</div>
|
</div>
|
||||||
|
@ -284,7 +284,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<p class="ds-subtitle">
|
<p class="ds-subtitle">
|
||||||
Utilice una contraseña segura al realizar el cambio, este dato debe ser secreto ya que provee acceso a su cuenta.
|
Utilice una contraseña segura al realizar el cambio, este dato debe ser secreto ya que provee acceso a su cuenta
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -50,8 +50,8 @@ export class SettingsComponent implements OnInit {
|
||||||
|
|
||||||
//form de la contraseña
|
//form de la contraseña
|
||||||
passwordForm = this.fb.group({
|
passwordForm = this.fb.group({
|
||||||
password: [null, [Validators.required], Validators.minLength(8), Validators.maxLength(50)],
|
password: [null, [Validators.required, Validators.minLength(8), Validators.maxLength(50)]],
|
||||||
passwordNew: [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)]],
|
passwordNewConfirm: [null, [Validators.required, Validators.minLength(8), Validators.maxLength(50)]],
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -121,7 +121,7 @@ export class SettingsComponent implements OnInit {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
console.log(this.isGoogle);
|
//console.log(this.isGoogle);
|
||||||
|
|
||||||
// this.activatedRoute.data.subscribe(({ usuarioExtra }) => {
|
// this.activatedRoute.data.subscribe(({ usuarioExtra }) => {
|
||||||
|
|
||||||
|
@ -230,8 +230,10 @@ export class SettingsComponent implements OnInit {
|
||||||
|
|
||||||
// Update swiper
|
// Update swiper
|
||||||
this.profileIcon = usuarioExtra.iconoPerfil!;
|
this.profileIcon = usuarioExtra.iconoPerfil!;
|
||||||
|
|
||||||
|
console.log(this.profileIcon);
|
||||||
this.profileIcons.forEach(icon => {
|
this.profileIcons.forEach(icon => {
|
||||||
if (parseInt(icon.name.split('C')[1]) === this.profileIcon) {
|
if (icon.name.split('C')[1] === this.profileIcon) {
|
||||||
icon.class = 'active';
|
icon.class = 'active';
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -282,7 +284,7 @@ export class SettingsComponent implements OnInit {
|
||||||
event.target.classList.add('active');
|
event.target.classList.add('active');
|
||||||
this.profileIcon = +event.target.getAttribute('id')! + 1;
|
this.profileIcon = +event.target.getAttribute('id')! + 1;
|
||||||
|
|
||||||
console.log(this.profileIcon);
|
//console.log(this.profileIcon);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,3 +2,4 @@ export const PROBLEM_BASE_URL = 'https://www.jhipster.tech/problem';
|
||||||
export const EMAIL_ALREADY_USED_TYPE = PROBLEM_BASE_URL + '/email-already-used';
|
export const EMAIL_ALREADY_USED_TYPE = PROBLEM_BASE_URL + '/email-already-used';
|
||||||
export const LOGIN_ALREADY_USED_TYPE = PROBLEM_BASE_URL + '/login-already-used';
|
export const LOGIN_ALREADY_USED_TYPE = PROBLEM_BASE_URL + '/login-already-used';
|
||||||
export const EMAIL_NOT_EXISTS_TYPE = PROBLEM_BASE_URL + '/email-not-exists';
|
export const EMAIL_NOT_EXISTS_TYPE = PROBLEM_BASE_URL + '/email-not-exists';
|
||||||
|
export const USER_IS_GOOGLE_TYPE = PROBLEM_BASE_URL + '/user-is-google';
|
||||||
|
|
|
@ -22,7 +22,7 @@ export interface Alert {
|
||||||
providedIn: 'root',
|
providedIn: 'root',
|
||||||
})
|
})
|
||||||
export class AlertService {
|
export class AlertService {
|
||||||
timeout = 5000;
|
timeout = 3000;
|
||||||
toast = false;
|
toast = false;
|
||||||
position = 'top right';
|
position = 'top right';
|
||||||
|
|
||||||
|
@ -65,7 +65,7 @@ export class AlertService {
|
||||||
alert.timeout = alert.timeout ?? this.timeout;
|
alert.timeout = alert.timeout ?? this.timeout;
|
||||||
alert.toast = alert.toast ?? this.toast;
|
alert.toast = alert.toast ?? this.toast;
|
||||||
alert.position = alert.position ?? this.position;
|
alert.position = alert.position ?? this.position;
|
||||||
alert.close = (alertsArray: Alert[]) => this.closeAlert(alert.id!, alertsArray);
|
//alert.close = (alertsArray: Alert[]) => this.closeAlert(alert.id!, alertsArray);
|
||||||
|
|
||||||
(extAlerts ?? this.alerts).push(alert);
|
(extAlerts ?? this.alerts).push(alert);
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,14 @@
|
||||||
import { NgModule } from '@angular/core';
|
import { NgModule } from '@angular/core';
|
||||||
import { SharedModule } from 'app/shared/shared.module';
|
import { SharedModule } from 'app/shared/shared.module';
|
||||||
import { CategoriaComponent } from './list/categoria.component';
|
import { CategoriaComponent } from './list/categoria.component';
|
||||||
|
import { CategoriaDetailComponent } from './detail/categoria-detail.component';
|
||||||
import { CategoriaUpdateComponent } from './update/categoria-update.component';
|
import { CategoriaUpdateComponent } from './update/categoria-update.component';
|
||||||
import { CategoriaDeleteDialogComponent } from './delete/categoria-delete-dialog.component';
|
import { CategoriaDeleteDialogComponent } from './delete/categoria-delete-dialog.component';
|
||||||
import { CategoriaRoutingModule } from './route/categoria-routing.module';
|
import { CategoriaRoutingModule } from './route/categoria-routing.module';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [SharedModule, CategoriaRoutingModule],
|
imports: [SharedModule, CategoriaRoutingModule],
|
||||||
declarations: [CategoriaComponent, CategoriaUpdateComponent, CategoriaDeleteDialogComponent],
|
declarations: [CategoriaComponent, CategoriaDetailComponent, CategoriaUpdateComponent, CategoriaDeleteDialogComponent],
|
||||||
entryComponents: [CategoriaDeleteDialogComponent],
|
entryComponents: [CategoriaDeleteDialogComponent],
|
||||||
})
|
})
|
||||||
export class CategoriaModule {}
|
export class CategoriaModule {}
|
||||||
|
|
|
@ -1,25 +1,26 @@
|
||||||
<form class="ds-form" *ngIf="categoria" name="deleteForm" (ngSubmit)="confirmDelete(categoria!)">
|
<form class="ds-form" *ngIf="categoria" name="deleteForm" (ngSubmit)="confirmDelete(categoria!)">
|
||||||
<div class="modal-header">
|
<div class="modal-header"></div>
|
||||||
<h4 class="modal-title" data-cy="categoriaDeleteDialogHeading" jhiTranslate="entity.delete.title">Confirm delete operation</h4>
|
|
||||||
|
|
||||||
<button type="button" class="ds-btn close" data-dismiss="modal" aria-hidden="true" (click)="cancel()">×</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<jhi-alert-error></jhi-alert-error>
|
<jhi-alert-error></jhi-alert-error>
|
||||||
|
|
||||||
<p id="jhi-delete-categoria-heading" jhiTranslate="dataSurveyApp.categoria.delete.question" [translateValues]="{ id: categoria.id }">
|
<p
|
||||||
Are you sure you want to delete this category?
|
id="jhi-delete-categoria-heading"
|
||||||
|
jhiTranslate="dataSurveyApp.categoria.delete.question"
|
||||||
|
[translateValues]="{ nombre: categoria.nombre }"
|
||||||
|
style="text-align: center"
|
||||||
|
>
|
||||||
|
Are you sure you want to toggle this category's status?
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button type="button" class="btn btn-secondary ds-btn ds-btn-secondary" data-dismiss="modal" (click)="cancel()">
|
<button type="button" class="btn btn-secondary ds-btn ds-btn-secondary" data-dismiss="modal" (click)="cancel()">
|
||||||
<fa-icon icon="ban"></fa-icon> <span jhiTranslate="entity.action.cancel">Cancel</span>
|
<span jhiTranslate="entity.action.cancel">Cancel</span>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<button id="jhi-confirm-delete-categoria" data-cy="entityConfirmDeleteButton" type="submit" class="btn btn-danger ds-btn ds-btn-danger">
|
<button id="jhi-confirm-delete-categoria" data-cy="entityConfirmDeleteButton" type="submit" class="btn btn-danger ds-btn ds-btn-danger">
|
||||||
<fa-icon icon="times"></fa-icon> <span jhiTranslate="entity.action.delete">Delete</span>
|
<span jhiTranslate="entity.action.toggleStatus">Toggle Status</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
|
import { HttpResponse } from '@angular/common/http';
|
||||||
import { Component } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
|
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
|
||||||
import { IEncuesta } from 'app/entities/encuesta/encuesta.model';
|
import { IEncuesta } from 'app/entities/encuesta/encuesta.model';
|
||||||
import { EncuestaService } from 'app/entities/encuesta/service/encuesta.service';
|
import { EncuestaService } from 'app/entities/encuesta/service/encuesta.service';
|
||||||
import { EstadoCategoria } from 'app/entities/enumerations/estado-categoria.model';
|
import { EstadoCategoria } from 'app/entities/enumerations/estado-categoria.model';
|
||||||
|
import { Observable } from 'rxjs';
|
||||||
|
import { finalize, map } from 'rxjs/operators';
|
||||||
|
|
||||||
import { Categoria, ICategoria } from '../categoria.model';
|
import { Categoria, ICategoria } from '../categoria.model';
|
||||||
import { CategoriaService } from '../service/categoria.service';
|
import { CategoriaService } from '../service/categoria.service';
|
||||||
|
@ -19,45 +22,55 @@ export class CategoriaDeleteDialogComponent {
|
||||||
protected categoriaService: CategoriaService,
|
protected categoriaService: CategoriaService,
|
||||||
protected activeModal: NgbActiveModal,
|
protected activeModal: NgbActiveModal,
|
||||||
protected encuestaService: EncuestaService
|
protected encuestaService: EncuestaService
|
||||||
) {}
|
) {
|
||||||
|
this.getEncuestas();
|
||||||
|
}
|
||||||
|
|
||||||
cancel(): void {
|
cancel(): void {
|
||||||
this.activeModal.dismiss();
|
this.activeModal.dismiss();
|
||||||
}
|
}
|
||||||
|
|
||||||
confirmDelete(categoria: ICategoria): void {
|
confirmDelete(categoria: ICategoria): void {
|
||||||
this.ensureNulaExists();
|
|
||||||
const categoriaNula = new Categoria(0, 'Otra', EstadoCategoria.ACTIVE);
|
const categoriaNula = new Categoria(0, 'Otra', EstadoCategoria.ACTIVE);
|
||||||
this.getEncuestas(categoria);
|
this.getEncuestas();
|
||||||
if (this.encuestas) {
|
if (categoria.estado == EstadoCategoria.INACTIVE) {
|
||||||
|
categoria.estado = EstadoCategoria.ACTIVE;
|
||||||
|
} else {
|
||||||
this.encuestas!.forEach(encuesta => {
|
this.encuestas!.forEach(encuesta => {
|
||||||
|
if (encuesta.categoria != null && encuesta.categoria!.id === categoria.id) {
|
||||||
encuesta.categoria = categoriaNula;
|
encuesta.categoria = categoriaNula;
|
||||||
this.encuestaService.update(encuesta);
|
this.subscribeToSaveResponse(this.encuestaService.update(encuesta));
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
});
|
||||||
categoria.estado = EstadoCategoria.INACTIVE;
|
categoria.estado = EstadoCategoria.INACTIVE;
|
||||||
|
}
|
||||||
this.categoriaService.update(categoria).subscribe(() => {
|
this.categoriaService.update(categoria).subscribe(() => {
|
||||||
this.activeModal.close('deleted');
|
this.activeModal.close('deleted');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
ensureNulaExists(): void {
|
|
||||||
const categoriaNula = new Categoria(0, 'Otra', EstadoCategoria.ACTIVE);
|
|
||||||
const categoria = this.categoriaService.find(0);
|
|
||||||
if (categoria) {
|
|
||||||
this.categoriaService.update(categoriaNula);
|
|
||||||
} else {
|
|
||||||
this.categoriaService.create(categoriaNula);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected getEncuestas(categoria: ICategoria): void {
|
getEncuestas(): void {
|
||||||
this.encuestaService.query().subscribe(res => {
|
this.encuestaService.query().subscribe(res => {
|
||||||
this.encuestas = res.body ?? [];
|
this.encuestas = res.body ?? [];
|
||||||
});
|
});
|
||||||
if (this.encuestas) {
|
|
||||||
this.encuestasFiltradas = this.encuestas.filter(encuesta => {
|
|
||||||
encuesta.categoria!.id === categoria.id;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected subscribeToSaveResponse(result: Observable<HttpResponse<IEncuesta>>): void {
|
||||||
|
result.pipe(finalize(() => this.onSaveFinalize())).subscribe(
|
||||||
|
() => this.onSaveSuccess(),
|
||||||
|
() => this.onSaveError()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected onSaveFinalize(): void {
|
||||||
|
// this.isSaving = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected onSaveSuccess(): void {
|
||||||
|
// this.previousState();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected onSaveError(): void {
|
||||||
|
// Api for inheritance.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
<div class="row justify-content-center">
|
||||||
|
<div class="col-8">
|
||||||
|
<div *ngIf="categoria">
|
||||||
|
<h2 data-cy="categoriaDetailsHeading"><span jhiTranslate="dataSurveyApp.categoria.detail.title">Categoria</span></h2>
|
||||||
|
|
||||||
|
<hr />
|
||||||
|
|
||||||
|
<jhi-alert-error></jhi-alert-error>
|
||||||
|
|
||||||
|
<jhi-alert></jhi-alert>
|
||||||
|
|
||||||
|
<dl class="row-md jh-entity-details">
|
||||||
|
<dt><span jhiTranslate="global.field.id">ID</span></dt>
|
||||||
|
<dd>
|
||||||
|
<span>{{ categoria.id }}</span>
|
||||||
|
</dd>
|
||||||
|
<dt><span jhiTranslate="dataSurveyApp.categoria.nombre">Nombre</span></dt>
|
||||||
|
<dd>
|
||||||
|
<span>{{ categoria.nombre }}</span>
|
||||||
|
</dd>
|
||||||
|
<dt><span jhiTranslate="dataSurveyApp.categoria.estado">Estado</span></dt>
|
||||||
|
<dd>
|
||||||
|
<span jhiTranslate="{{ 'dataSurveyApp.EstadoCategoria.' + categoria.estado }}">{{ categoria.estado }}</span>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
<button type="submit" (click)="previousState()" class="btn btn-ds btn-info" data-cy="entityDetailsBackButton">
|
||||||
|
<span jhiTranslate="entity.action.back">Back</span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<button
|
||||||
|
*ngIf="categoria.id != 0"
|
||||||
|
type="button"
|
||||||
|
[routerLink]="['/categoria', categoria.id, 'edit']"
|
||||||
|
class="btn btn-ds btn-ds-primary btn-primary"
|
||||||
|
>
|
||||||
|
<span jhiTranslate="entity.action.edit">Edit</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,38 @@
|
||||||
|
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<CategoriaDetailComponent>;
|
||||||
|
|
||||||
|
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 }));
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
|
@ -0,0 +1,24 @@
|
||||||
|
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();
|
||||||
|
}
|
||||||
|
}
|
|
@ -15,9 +15,15 @@
|
||||||
</div>
|
</div>
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<jhi-alert-error></jhi-alert-error>
|
<!-- <div class="alert alert-success" *ngIf="success" jhiTranslate="dataSurveyApp.categoria.delete.error">
|
||||||
|
|
||||||
<jhi-alert></jhi-alert>
|
</div>-->
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<jhi-alert class="alert-success"></jhi-alert>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="alert alert-success" *ngIf="success" jhiTranslate="dataSurveyApp.categoria.delete.success"></div>
|
||||||
|
|
||||||
<div class="alert alert-warning" id="no-result" *ngIf="categorias?.length === 0">
|
<div class="alert alert-warning" id="no-result" *ngIf="categorias?.length === 0">
|
||||||
<span jhiTranslate="dataSurveyApp.categoria.home.notFound">No categorias found</span>
|
<span jhiTranslate="dataSurveyApp.categoria.home.notFound">No categorias found</span>
|
||||||
|
@ -40,9 +46,9 @@
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr *ngFor="let categoria of categorias | filter: 'nombre':searchString; trackBy: trackId" data-cy="entityTable">
|
<tr *ngFor="let categoria of categorias | filter: 'nombre':searchString; trackBy: trackId" data-cy="entityTable">
|
||||||
<td>{{ categoria.nombre }}</td>
|
<td *ngIf="categoria.id != 0">{{ categoria.nombre }}</td>
|
||||||
<td jhiTranslate="{{ 'dataSurveyApp.EstadoCategoria.' + categoria.estado }}">{{ categoria.estado }}</td>
|
<td *ngIf="categoria.id != 0" jhiTranslate="{{ 'dataSurveyApp.EstadoCategoria.' + categoria.estado }}">{{ categoria.estado }}</td>
|
||||||
<td class="text-right">
|
<td *ngIf="categoria.id != 0" class="text-right">
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
<button
|
<button
|
||||||
type="submit"
|
type="submit"
|
||||||
|
@ -50,13 +56,11 @@
|
||||||
class="btn-sm ds-btn ds-btn--primary"
|
class="btn-sm ds-btn ds-btn--primary"
|
||||||
data-cy="entityEditButton"
|
data-cy="entityEditButton"
|
||||||
>
|
>
|
||||||
<fa-icon icon="pencil-alt"></fa-icon>
|
|
||||||
<span class="d-none d-md-inline" jhiTranslate="entity.action.edit">Edit</span>
|
<span class="d-none d-md-inline" jhiTranslate="entity.action.edit">Edit</span>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<button type="submit" (click)="delete(categoria)" class="btn-sm ds-btn ds-btn--danger" data-cy="entityDeleteButton">
|
<button type="submit" (click)="toggleStatus(categoria)" class="btn-sm ds-btn ds-btn--toggle" data-cy="entityDeleteButton">
|
||||||
<fa-icon icon="times"></fa-icon>
|
<span class="d-none d-md-inline" jhiTranslate="entity.action.toggleStatus">Toggle Status</span>
|
||||||
<span class="d-none d-md-inline" jhiTranslate="entity.action.delete">Delete</span>
|
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
|
|
|
@ -14,6 +14,7 @@ export class CategoriaComponent implements OnInit {
|
||||||
categorias?: ICategoria[];
|
categorias?: ICategoria[];
|
||||||
isLoading = false;
|
isLoading = false;
|
||||||
public searchString: string;
|
public searchString: string;
|
||||||
|
success = false;
|
||||||
|
|
||||||
constructor(protected categoriaService: CategoriaService, protected modalService: NgbModal) {
|
constructor(protected categoriaService: CategoriaService, protected modalService: NgbModal) {
|
||||||
this.searchString = '';
|
this.searchString = '';
|
||||||
|
@ -42,12 +43,13 @@ export class CategoriaComponent implements OnInit {
|
||||||
return item.id!;
|
return item.id!;
|
||||||
}
|
}
|
||||||
|
|
||||||
delete(categoria: ICategoria): void {
|
toggleStatus(categoria: ICategoria): void {
|
||||||
const modalRef = this.modalService.open(CategoriaDeleteDialogComponent, { size: 'lg', backdrop: 'static' });
|
const modalRef = this.modalService.open(CategoriaDeleteDialogComponent, { size: 'lg', backdrop: 'static' });
|
||||||
modalRef.componentInstance.categoria = categoria;
|
modalRef.componentInstance.categoria = categoria;
|
||||||
// unsubscribe not needed because closed completes on modal close
|
// unsubscribe not needed because closed completes on modal close
|
||||||
modalRef.closed.subscribe(reason => {
|
modalRef.closed.subscribe(reason => {
|
||||||
if (reason === 'deleted') {
|
if (reason === 'deleted') {
|
||||||
|
this.success = true;
|
||||||
this.loadAll();
|
this.loadAll();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -3,6 +3,7 @@ import { RouterModule, Routes } from '@angular/router';
|
||||||
|
|
||||||
import { UserRouteAccessService } from 'app/core/auth/user-route-access.service';
|
import { UserRouteAccessService } from 'app/core/auth/user-route-access.service';
|
||||||
import { CategoriaComponent } from '../list/categoria.component';
|
import { CategoriaComponent } from '../list/categoria.component';
|
||||||
|
import { CategoriaDetailComponent } from '../detail/categoria-detail.component';
|
||||||
import { CategoriaUpdateComponent } from '../update/categoria-update.component';
|
import { CategoriaUpdateComponent } from '../update/categoria-update.component';
|
||||||
import { CategoriaRoutingResolveService } from './categoria-routing-resolve.service';
|
import { CategoriaRoutingResolveService } from './categoria-routing-resolve.service';
|
||||||
|
|
||||||
|
@ -12,6 +13,14 @@ const categoriaRoute: Routes = [
|
||||||
component: CategoriaComponent,
|
component: CategoriaComponent,
|
||||||
canActivate: [UserRouteAccessService],
|
canActivate: [UserRouteAccessService],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: ':id/view',
|
||||||
|
component: CategoriaDetailComponent,
|
||||||
|
resolve: {
|
||||||
|
categoria: CategoriaRoutingResolveService,
|
||||||
|
},
|
||||||
|
canActivate: [UserRouteAccessService],
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: 'new',
|
path: 'new',
|
||||||
component: CategoriaUpdateComponent,
|
component: CategoriaUpdateComponent,
|
||||||
|
|
|
@ -49,17 +49,18 @@
|
||||||
class="btn btn-secondary ds-btn ds-btn-secondary"
|
class="btn btn-secondary ds-btn ds-btn-secondary"
|
||||||
(click)="previousState()"
|
(click)="previousState()"
|
||||||
>
|
>
|
||||||
<fa-icon icon="ban"></fa-icon> <span jhiTranslate="entity.action.cancel">Cancel</span>
|
<span jhiTranslate="entity.action.cancel">Cancel</span>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<button
|
<button
|
||||||
|
*ngIf="this.id != 0"
|
||||||
type="submit"
|
type="submit"
|
||||||
id="save-entity"
|
id="save-entity"
|
||||||
data-cy="entityCreateSaveButton"
|
data-cy="entityCreateSaveButton"
|
||||||
[disabled]="editForm.invalid || isSaving"
|
[disabled]="editForm.invalid || isSaving"
|
||||||
class="btn btn-primary ds-btn ds-btn-primary"
|
class="btn btn-primary ds-btn ds-btn-primary"
|
||||||
>
|
>
|
||||||
<fa-icon icon="save"></fa-icon> <span jhiTranslate="entity.action.save">Save</span>
|
<span jhiTranslate="entity.action.save">Save</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
|
@ -22,6 +22,7 @@ export class CategoriaUpdateComponent implements OnInit {
|
||||||
estado: [null, [Validators.required]],
|
estado: [null, [Validators.required]],
|
||||||
});
|
});
|
||||||
public duplicateName: boolean;
|
public duplicateName: boolean;
|
||||||
|
id: number | undefined;
|
||||||
|
|
||||||
constructor(protected categoriaService: CategoriaService, protected activatedRoute: ActivatedRoute, protected fb: FormBuilder) {
|
constructor(protected categoriaService: CategoriaService, protected activatedRoute: ActivatedRoute, protected fb: FormBuilder) {
|
||||||
this.duplicateName = false;
|
this.duplicateName = false;
|
||||||
|
@ -88,6 +89,7 @@ export class CategoriaUpdateComponent implements OnInit {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected updateForm(categoria: ICategoria): void {
|
protected updateForm(categoria: ICategoria): void {
|
||||||
|
this.id = categoria.id;
|
||||||
this.editForm.patchValue({
|
this.editForm.patchValue({
|
||||||
id: categoria.id,
|
id: categoria.id,
|
||||||
nombre: categoria.nombre,
|
nombre: categoria.nombre,
|
||||||
|
|
|
@ -3,10 +3,10 @@
|
||||||
<div class="col-lg-10 mr-lg-5">
|
<div class="col-lg-10 mr-lg-5">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="w-100">
|
<div class="w-100">
|
||||||
<p class="ds-title">Parámetros de la aplicación</p>
|
<p class="ds-title">Configuración</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<p class="ds-subtitle">Información de los parámetros que se permiten para la creación de las encuestas dentro de DataSurvey.</p>
|
<p class="ds-subtitle">Configuración de parámetros de DataSurvey.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -37,12 +37,10 @@
|
||||||
<div class="col-lg-4 mr-lg-5">
|
<div class="col-lg-4 mr-lg-5">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="w-100">
|
<div class="w-100">
|
||||||
<p class="ds-title">Días para Encuestas</p>
|
<p class="ds-title">Duración de una encuesta</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<p class="ds-subtitle">
|
<p class="ds-subtitle">Configurar la duración mínima y máxima para las encuestas publicadas</p>
|
||||||
Editar la cantidad mínima y máxima de los días que se permitirá para la creación de las encuestas dentro de DataSurvey.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -67,20 +65,29 @@
|
||||||
>
|
>
|
||||||
<small
|
<small
|
||||||
class="form-text text-danger"
|
class="form-text text-danger"
|
||||||
*ngIf="editForm.get('minDiasEncuesta')?.errors?.required"
|
*ngIf="
|
||||||
jhiTranslate="entity.validation.required"
|
(editForm.get('minDiasEncuesta')?.errors?.pattern || editForm.get('minDiasEncuesta')?.errors?.required) &&
|
||||||
|
!editForm.get('minDiasEncuesta')?.errors?.max
|
||||||
|
"
|
||||||
|
jhiTranslate="dataSurveyApp.parametroAplicacion.datoInvalido"
|
||||||
>
|
>
|
||||||
This field is required.
|
This field is required.
|
||||||
</small>
|
</small>
|
||||||
<small
|
|
||||||
|
<!--<small
|
||||||
class="form-text text-danger"
|
class="form-text text-danger"
|
||||||
[hidden]="!editForm.get('minDiasEncuesta')?.errors?.pattern"
|
*ngIf="editForm.get('minDiasEncuesta')?.errors?.required "
|
||||||
jhiTranslate="entity.validation.integerNumber"
|
jhiTranslate="dataSurveyApp.parametroAplicacion.vacio"
|
||||||
>
|
>
|
||||||
This field should be a number.
|
This field is required.
|
||||||
|
</small>-->
|
||||||
|
|
||||||
|
<small class="form-text text-danger" *ngIf="editForm.get('minDiasEncuesta')?.errors?.min">
|
||||||
|
Este campo debe ser mayor o igual a 1
|
||||||
</small>
|
</small>
|
||||||
<small class="form-text text-danger" [hidden]="!editForm.get('minDiasEncuesta')?.errors?.min">
|
|
||||||
Este campo no puede ser mayor que 1
|
<small class="form-text text-danger" *ngIf="editForm.get('minDiasEncuesta')?.errors?.max">
|
||||||
|
Este campo debe ser menor o igual a 14
|
||||||
</small>
|
</small>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -105,20 +112,29 @@
|
||||||
>
|
>
|
||||||
<small
|
<small
|
||||||
class="form-text text-danger"
|
class="form-text text-danger"
|
||||||
*ngIf="editForm.get('maxDiasEncuesta')?.errors?.required"
|
*ngIf="
|
||||||
jhiTranslate="entity.validation.required"
|
(editForm.get('maxDiasEncuesta')?.errors?.pattern || editForm.get('maxDiasEncuesta')?.errors?.required) &&
|
||||||
|
!editForm.get('maxDiasEncuesta')?.errors?.max
|
||||||
|
"
|
||||||
|
jhiTranslate="dataSurveyApp.parametroAplicacion.datoInvalido"
|
||||||
>
|
>
|
||||||
This field is required.
|
This field is required.
|
||||||
</small>
|
</small>
|
||||||
<small
|
|
||||||
|
<!--small
|
||||||
class="form-text text-danger"
|
class="form-text text-danger"
|
||||||
[hidden]="!editForm.get('maxDiasEncuesta')?.errors?.pattern"
|
*ngIf="editForm.get('maxDiasEncuesta')?.errors?.required "
|
||||||
jhiTranslate="entity.validation.integerNumber"
|
jhiTranslate="dataSurveyApp.parametroAplicacion.vacio"
|
||||||
>
|
>
|
||||||
This field should be a number.
|
This field is required.
|
||||||
|
</small>-->
|
||||||
|
|
||||||
|
<small class="form-text text-danger" *ngIf="editForm.get('maxDiasEncuesta')?.errors?.min">
|
||||||
|
Este campo debe ser mayor o igual a 1
|
||||||
</small>
|
</small>
|
||||||
<small class="form-text text-danger" [hidden]="!editForm.get('maxDiasEncuesta')?.errors?.min">
|
|
||||||
Este campo no puede ser mayor que 1
|
<small class="form-text text-danger" *ngIf="editForm.get('maxDiasEncuesta')?.errors?.max">
|
||||||
|
Este campo debe ser menor o igual a 14
|
||||||
</small>
|
</small>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -130,12 +146,10 @@
|
||||||
<div class="col-lg-4 mr-lg-5">
|
<div class="col-lg-4 mr-lg-5">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="w-100">
|
<div class="w-100">
|
||||||
<p class="ds-title">Preguntas para Encuestas</p>
|
<p class="ds-title">Cantidad de preguntas</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<p class="ds-subtitle">
|
<p class="ds-subtitle">Configurar la cantidad mínima y máxima de preguntas por encuesta</p>
|
||||||
Editar la cantidad mínima y máxima de las preguntas que se permitirán para la creación de las encuestas dentro de DataSurvey.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -160,20 +174,21 @@
|
||||||
>
|
>
|
||||||
<small
|
<small
|
||||||
class="form-text text-danger"
|
class="form-text text-danger"
|
||||||
*ngIf="editForm.get('minCantidadPreguntas')?.errors?.required"
|
*ngIf="
|
||||||
jhiTranslate="entity.validation.required"
|
(editForm.get('minCantidadPreguntas')?.errors?.required || !editForm.get('minCantidadPreguntas')?.errors?.pattern) &&
|
||||||
|
!(editForm.get('minCantidadPreguntas')?.errors?.max || editForm.get('minCantidadPreguntas')?.errors?.min)
|
||||||
|
"
|
||||||
|
jhiTranslate="dataSurveyApp.parametroAplicacion.datoInvalido"
|
||||||
>
|
>
|
||||||
This field is required.
|
This field is required.
|
||||||
</small>
|
</small>
|
||||||
<small
|
|
||||||
class="form-text text-danger"
|
<small class="form-text text-danger" *ngIf="editForm.get('minCantidadPreguntas')?.errors?.min">
|
||||||
[hidden]="!editForm.get('minCantidadPreguntas')?.errors?.pattern"
|
Este campo debe ser mayor o igual a 1
|
||||||
jhiTranslate="entity.validation.integerNumber"
|
|
||||||
>
|
|
||||||
This field should be a number.
|
|
||||||
</small>
|
</small>
|
||||||
<small class="form-text text-danger" [hidden]="!editForm.get('minCantidadPreguntas')?.errors?.min">
|
|
||||||
Este campo no puede ser mayor que 1
|
<small class="form-text text-danger" *ngIf="editForm.get('minCantidadPreguntas')?.errors?.max">
|
||||||
|
Este campo debe ser menor o igual a 40
|
||||||
</small>
|
</small>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -196,20 +211,21 @@
|
||||||
>
|
>
|
||||||
<small
|
<small
|
||||||
class="form-text text-danger"
|
class="form-text text-danger"
|
||||||
*ngIf="editForm.get('maxCantidadPreguntas')?.errors?.required"
|
*ngIf="
|
||||||
jhiTranslate="entity.validation.required"
|
(editForm.get('maxCantidadPreguntas')?.errors?.required || !editForm.get('maxCantidadPreguntas')?.errors?.pattern) &&
|
||||||
|
!(editForm.get('maxCantidadPreguntas')?.errors?.max || editForm.get('maxCantidadPreguntas')?.errors?.min)
|
||||||
|
"
|
||||||
|
jhiTranslate="dataSurveyApp.parametroAplicacion.datoInvalido"
|
||||||
>
|
>
|
||||||
This field is required.
|
This field is required.
|
||||||
</small>
|
</small>
|
||||||
<small
|
|
||||||
class="form-text text-danger"
|
<small class="form-text text-danger" *ngIf="editForm.get('maxCantidadPreguntas')?.errors?.min">
|
||||||
[hidden]="!editForm.get('maxCantidadPreguntas')?.errors?.pattern"
|
Este campo debe ser mayor o igual a 1
|
||||||
jhiTranslate="entity.validation.integerNumber"
|
|
||||||
>
|
|
||||||
This field should be a integer number.
|
|
||||||
</small>
|
</small>
|
||||||
<small class="form-text text-danger" [hidden]="!editForm.get('minCantidadPreguntas')?.errors?.min">
|
|
||||||
Este campo no puede ser mayor que 1
|
<small class="form-text text-danger" *ngIf="editForm.get('maxCantidadPreguntas')?.errors?.max">
|
||||||
|
Este campo debe ser menor o igual a 40
|
||||||
</small>
|
</small>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import { Component, OnInit } from '@angular/core';
|
import { Component, OnInit } from '@angular/core';
|
||||||
import { HttpResponse } from '@angular/common/http';
|
import { HttpResponse } from '@angular/common/http';
|
||||||
import { FormBuilder, Validators } from '@angular/forms';
|
import { FormBuilder, Validators } from '@angular/forms';
|
||||||
import { ActivatedRoute } from '@angular/router';
|
import { Router, ActivatedRoute } from '@angular/router';
|
||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
import { finalize } from 'rxjs/operators';
|
import { finalize } from 'rxjs/operators';
|
||||||
|
|
||||||
|
@ -24,16 +24,17 @@ export class ParametroAplicacionUpdateComponent implements OnInit {
|
||||||
|
|
||||||
editForm = this.fb.group({
|
editForm = this.fb.group({
|
||||||
id: [],
|
id: [],
|
||||||
maxDiasEncuesta: [null, [Validators.required, Validators.pattern(/^[0-9]\d*$/), Validators.min(1)]],
|
maxDiasEncuesta: [null, [Validators.required, Validators.pattern(/^[0-9]\d*$/), Validators.min(1), Validators.max(14)]],
|
||||||
minDiasEncuesta: [null, [Validators.required, Validators.pattern(/^[0-9]\d*$/), Validators.min(1)]],
|
minDiasEncuesta: [null, [Validators.required, Validators.pattern(/^[0-9]\d*$/), Validators.min(1), Validators.max(14)]],
|
||||||
maxCantidadPreguntas: [null, [Validators.required, Validators.pattern(/^[0-9]\d*$/), Validators.min(1)]],
|
maxCantidadPreguntas: [null, [Validators.required, Validators.pattern(/^[0-9]\d*$/), Validators.min(1), Validators.max(40)]],
|
||||||
minCantidadPreguntas: [null, [Validators.required, Validators.pattern(/^[0-9]\d*$/), Validators.min(1)]],
|
minCantidadPreguntas: [null, [Validators.required, Validators.pattern(/^[0-9]\d*$/), Validators.min(1), Validators.max(40)]],
|
||||||
});
|
});
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
protected parametroAplicacionService: ParametroAplicacionService,
|
protected parametroAplicacionService: ParametroAplicacionService,
|
||||||
protected activatedRoute: ActivatedRoute,
|
protected activatedRoute: ActivatedRoute,
|
||||||
protected fb: FormBuilder
|
protected fb: FormBuilder,
|
||||||
|
private router: Router
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
|
@ -89,9 +90,14 @@ export class ParametroAplicacionUpdateComponent implements OnInit {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected onSaveSuccess(): void {
|
protected onSaveSuccess(): void {
|
||||||
this.previousState();
|
(this.success = true), this.windowReload();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
windowReload() {
|
||||||
|
this.router.navigate(['parametro-aplicacion/1/edit']).then(() => {
|
||||||
|
window.location.reload();
|
||||||
|
});
|
||||||
|
}
|
||||||
protected onSaveError(): void {
|
protected onSaveError(): void {
|
||||||
// Api for inheritance.
|
// Api for inheritance.
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,6 +63,7 @@ describe('Component Tests', () => {
|
||||||
login: '',
|
login: '',
|
||||||
langKey: 'es',
|
langKey: 'es',
|
||||||
name: '',
|
name: '',
|
||||||
|
firstName: 'userNormal',
|
||||||
profileIcon: 1,
|
profileIcon: 1,
|
||||||
isAdmin: 1,
|
isAdmin: 1,
|
||||||
isGoogle: 0,
|
isGoogle: 0,
|
||||||
|
|
|
@ -82,7 +82,7 @@ export class UsuarioExtraUpdateComponent {
|
||||||
const login = this.registerForm.get(['email'])!.value;
|
const login = this.registerForm.get(['email'])!.value;
|
||||||
const email = this.registerForm.get(['email'])!.value;
|
const email = this.registerForm.get(['email'])!.value;
|
||||||
const name = this.registerForm.get(['name'])!.value;
|
const name = this.registerForm.get(['name'])!.value;
|
||||||
|
const firstName = 'userNormal';
|
||||||
this.registerService
|
this.registerService
|
||||||
.save({
|
.save({
|
||||||
login,
|
login,
|
||||||
|
@ -90,6 +90,7 @@ export class UsuarioExtraUpdateComponent {
|
||||||
password,
|
password,
|
||||||
langKey: this.translateService.currentLang,
|
langKey: this.translateService.currentLang,
|
||||||
name,
|
name,
|
||||||
|
firstName,
|
||||||
profileIcon: this.profileIcon,
|
profileIcon: this.profileIcon,
|
||||||
isAdmin: 1,
|
isAdmin: 1,
|
||||||
isGoogle: 0,
|
isGoogle: 0,
|
||||||
|
|
|
@ -142,6 +142,7 @@ export class LoginComponent implements OnInit, AfterViewInit {
|
||||||
password: this.user.id,
|
password: this.user.id,
|
||||||
langKey: this.translateService.currentLang,
|
langKey: this.translateService.currentLang,
|
||||||
name: this.user.name,
|
name: this.user.name,
|
||||||
|
firstName: 'IsGoogle',
|
||||||
profileIcon: this.randomProfilePic(),
|
profileIcon: this.randomProfilePic(),
|
||||||
isAdmin: 0,
|
isAdmin: 0,
|
||||||
isGoogle: 1,
|
isGoogle: 1,
|
||||||
|
|
|
@ -41,6 +41,15 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.ds-btn--toggle {
|
||||||
|
background-color: #ffaa47;
|
||||||
|
color: #fff;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: #e09935;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.ds-btn--secondary {
|
.ds-btn--secondary {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
color: #2962ff;
|
color: #2962ff;
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
{
|
{
|
||||||
"activate": {
|
"activate": {
|
||||||
"title": "Activación de Cuenta",
|
"title": "Registro Completado",
|
||||||
"messages": {
|
"messages": {
|
||||||
"success": "<strong>Su cuenta ha sido activada.</strong> Ya puede ",
|
"success": "¡Felicidades! Su confirmación de correo fue exitosa ",
|
||||||
"error": "<strong>Su cuenta no pudo ser activada.</strong> Por favor, regístrese en DataSurvey."
|
"error": "Ocurrió un error al confirmar su correo, por favor intente de nuevo"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,15 +4,17 @@
|
||||||
"home": {
|
"home": {
|
||||||
"title": "Categorías",
|
"title": "Categorías",
|
||||||
"refreshListLabel": "Refrescar lista",
|
"refreshListLabel": "Refrescar lista",
|
||||||
"createLabel": "Crear nueva Categoría",
|
"createLabel": "Crear nueva categoría",
|
||||||
"createOrEditLabel": "Datos de Categoría",
|
"createOrEditLabel": "Datos de categoría",
|
||||||
"notFound": "Ninguna Categoría encontrada"
|
"notFound": "Ninguna categoría encontrada"
|
||||||
},
|
},
|
||||||
"created": "Una nueva Categoría ha sido creada con el identificador {{ param }}",
|
"created": "Su categoría fue creada de manera exitosa",
|
||||||
"updated": "Una Categoría ha sido actualizado con el identificador {{ param }}",
|
"updated": "Los datos de la categoría han sido guardados de manera exitosa",
|
||||||
"deleted": "Una Categoría ha sido eliminado con el identificador {{ param }}",
|
"deleted": "La categoría {{ nombre }} ha sido deshabilitada",
|
||||||
"delete": {
|
"delete": {
|
||||||
"question": "¿Seguro que quiere eliminar Categoría {{ id }}?"
|
"question": "¿Seguro que quiere cambiar el estado de \"{{ nombre }}\"?",
|
||||||
|
"success": "Su categoría ha sido modificada de manera exitosa ",
|
||||||
|
"error": "Ocurrió un error al cambiar el estado de su categoría, por favor intentar de nuevo"
|
||||||
},
|
},
|
||||||
"detail": {
|
"detail": {
|
||||||
"title": "Categoría"
|
"title": "Categoría"
|
||||||
|
@ -23,7 +25,7 @@
|
||||||
"encuesta": "Encuesta",
|
"encuesta": "Encuesta",
|
||||||
"plantilla": "Plantilla",
|
"plantilla": "Plantilla",
|
||||||
"errors": {
|
"errors": {
|
||||||
"duplicateName": "Ya existe una categoría con ese nombre."
|
"duplicateName": "Ya existe una categoría con ese nombre"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,7 +64,7 @@
|
||||||
"info": {
|
"info": {
|
||||||
"authenticated": {
|
"authenticated": {
|
||||||
"prefix": "Si desea ",
|
"prefix": "Si desea ",
|
||||||
"link": "iniciar sesión",
|
"link": "Iniciar Sesión",
|
||||||
"suffix": ", puede intentar con las cuentas predeterminadas:<br/>- Administrador (usuario=\"admin\" y contraseña=\"admin\") <br/>- Usuario (usuario=\"user\" y contraseña=\"user\").",
|
"suffix": ", puede intentar con las cuentas predeterminadas:<br/>- Administrador (usuario=\"admin\" y contraseña=\"admin\") <br/>- Usuario (usuario=\"user\" y contraseña=\"user\").",
|
||||||
"updateForm": "Ocurrió un error al actualizar su información, favor revisar los campos e intentar de nuevo",
|
"updateForm": "Ocurrió un error al actualizar su información, favor revisar los campos e intentar de nuevo",
|
||||||
"passwordForm": "Ocurrió un error al actualizar su contraseña, favor revisar los campos e intentar de nuevo",
|
"passwordForm": "Ocurrió un error al actualizar su contraseña, favor revisar los campos e intentar de nuevo",
|
||||||
|
@ -113,7 +113,7 @@
|
||||||
"dev": "Development"
|
"dev": "Development"
|
||||||
},
|
},
|
||||||
"item-count": "Mostrando {{first}} - {{second}} de {{total}} elementos.",
|
"item-count": "Mostrando {{first}} - {{second}} de {{total}} elementos.",
|
||||||
"registerLink": "Registrarse"
|
"registerLink": "Crear una cuenta"
|
||||||
},
|
},
|
||||||
"entity": {
|
"entity": {
|
||||||
"action": {
|
"action": {
|
||||||
|
@ -126,7 +126,10 @@
|
||||||
"open": "Abrir",
|
"open": "Abrir",
|
||||||
"save": "Guardar",
|
"save": "Guardar",
|
||||||
"view": "Vista",
|
"view": "Vista",
|
||||||
"create": "Crear"
|
"create": "Crear",
|
||||||
|
"enable": "Habilitar",
|
||||||
|
"disable": "Deshabilitar",
|
||||||
|
"toggleStatus": "Cambiar Estado"
|
||||||
},
|
},
|
||||||
"detail": {
|
"detail": {
|
||||||
"field": "Campo",
|
"field": "Campo",
|
||||||
|
|
|
@ -21,7 +21,9 @@
|
||||||
"maxDiasEncuesta": "Max Dias Encuesta",
|
"maxDiasEncuesta": "Max Dias Encuesta",
|
||||||
"minDiasEncuesta": "Min Dias Encuesta",
|
"minDiasEncuesta": "Min Dias Encuesta",
|
||||||
"maxCantidadPreguntas": "Max Cantidad Preguntas",
|
"maxCantidadPreguntas": "Max Cantidad Preguntas",
|
||||||
"minCantidadPreguntas": "Min Cantidad Preguntas"
|
"minCantidadPreguntas": "Min Cantidad Preguntas",
|
||||||
|
"datoInvalido": "Debe ingresar un valor valido",
|
||||||
|
"vacio": "Este dato es requerido"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,23 +2,23 @@
|
||||||
"register": {
|
"register": {
|
||||||
"title": "Registro",
|
"title": "Registro",
|
||||||
"form": {
|
"form": {
|
||||||
"button": "Guardar"
|
"button": "Registrarse"
|
||||||
},
|
},
|
||||||
"messages": {
|
"messages": {
|
||||||
"validate": {
|
"validate": {
|
||||||
"login": {
|
"login": {
|
||||||
"required": "Su nombre de usuario es obligatorio.",
|
"required": "Su nombre de usuario es obligatorio",
|
||||||
"minlength": "Su nombre de usuario debe tener al menos 1 caracter.",
|
"minlength": "Su nombre de usuario debe tener al menos 1 caracter",
|
||||||
"maxlength": "Su nombre de usuario no puede tener más de 50 caracteres.",
|
"maxlength": "Su nombre de usuario no puede tener más de 50 caracteres",
|
||||||
"pattern": "Su nombre de usuario no es válido."
|
"pattern": "Su nombre de usuario no es válido"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"success": "<strong>¡Registro guardado!</strong> Por favor, revise su correo electrónico para confirmar.",
|
"success": "Revise su correo electrónico para confirmar su dirección de correo con DataSurvey",
|
||||||
"adminsuccess": "<strong>¡Registro guardado!</strong> Por favor, revise el correo electrónico para confirmar.",
|
"adminsuccess": "Revise su correo electrónico para confirmar su dirección de correo con DataSurvey",
|
||||||
"error": {
|
"error": {
|
||||||
"fail": "<strong>¡El registro ha fallado!</strong> Por favor, inténtelo de nuevo más tarde.",
|
"fail": "Ocurrió un error con el registro. Por favor inténtelo más tarde",
|
||||||
"userexists": "<strong>¡El correo electrónico ya está en uso!</strong> Por favor, escoja otro correo.",
|
"userexists": "El correo electrónico ya existe. Ingrese otro ",
|
||||||
"emailexists": "<strong>¡El correo electrónico ya está en uso!</strong> Por favor, escoja otro email."
|
"emailexists": "El correo electrónico ya existe. Ingrese otro"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,10 +6,11 @@
|
||||||
"button": "Restablecer la contraseña"
|
"button": "Restablecer la contraseña"
|
||||||
},
|
},
|
||||||
"messages": {
|
"messages": {
|
||||||
"info": "Introduzca la dirección de correo electrónico que utilizó para registrarse",
|
"info": "Introduzca su dirección de correo electrónico",
|
||||||
"success": "Revise su correo electrónico para obtener más información sobre cómo restablecer su contraseña.",
|
"success": "Revise su correo electrónico para restablecer su contraseña.",
|
||||||
"error": {
|
"error": {
|
||||||
"emailnotexists": "<strong>¡El correo electrónico no se encuentra registrado en el sistema!</strong> Por favor, ingrese otro email."
|
"emailnotexists": "<strong>No existe una cuenta creada con esa dirección de correo electrónico</strong>",
|
||||||
|
"userisgoogle": "<strong>No cuenta con el permiso de restablecer su contraseña al haber activado su cuenta por medio de Google</strong>"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -20,7 +21,7 @@
|
||||||
},
|
},
|
||||||
"messages": {
|
"messages": {
|
||||||
"info": "Elija una contraseña nueva",
|
"info": "Elija una contraseña nueva",
|
||||||
"success": "<strong>Su contraseña ha sido restablecida.</strong> Por favor, ",
|
"success": "<strong>Su contraseña ha sido restablecida.</strong>",
|
||||||
"keymissing": "Falta la clave de reinicio.",
|
"keymissing": "Falta la clave de reinicio.",
|
||||||
"error": "Su contraseña no puede ser restablecida. Recuerde que una solicitud de reinicio de contraseña sólo es válida durante 24 horas."
|
"error": "Su contraseña no puede ser restablecida. Recuerde que una solicitud de reinicio de contraseña sólo es válida durante 24 horas."
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue