Merge pull request #26 from Quantum-P3/dev

arreglos finales de sprint 1
This commit is contained in:
Eduardo Quiros 2021-07-12 05:48:37 +00:00 committed by GitHub
commit a1d63f1b71
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
39 changed files with 352 additions and 138 deletions

31
.github/workflows/node.js.yml vendored Normal file
View File

@ -0,0 +1,31 @@
# This workflow will do a clean install of node dependencies, cache/restore them, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
name: Node.js CI
on:
push:
branches: [ dev ]
pull_request:
branches: [ dev ]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [12.x, 14.x, 16.x]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- run: npm ci
- run: npm run build --if-present
- run: npm test

48
package-lock.json generated
View File

@ -23,6 +23,8 @@
"@ng-bootstrap/ng-bootstrap": "9.1.3", "@ng-bootstrap/ng-bootstrap": "9.1.3",
"@ngx-translate/core": "13.0.0", "@ngx-translate/core": "13.0.0",
"@ngx-translate/http-loader": "6.0.0", "@ngx-translate/http-loader": "6.0.0",
"@types/gapi.auth2": "0.0.54",
"angularx-social-login": "^4.0.1",
"bootstrap": "4.6.0", "bootstrap": "4.6.0",
"dayjs": "1.10.5", "dayjs": "1.10.5",
"ngx-infinite-scroll": "10.0.1", "ngx-infinite-scroll": "10.0.1",
@ -4227,6 +4229,19 @@
"@types/node": "*" "@types/node": "*"
} }
}, },
"node_modules/@types/gapi": {
"version": "0.0.40",
"resolved": "https://registry.npmjs.org/@types/gapi/-/gapi-0.0.40.tgz",
"integrity": "sha512-HzV7JIp5vgCZYPLzTg+LJCEVbTbZ/wNSCatNYThNvDTtiNXU+ccrUfFLUF2akHsil+KCpf2yp9OUhLUflsOuBw=="
},
"node_modules/@types/gapi.auth2": {
"version": "0.0.54",
"resolved": "https://registry.npmjs.org/@types/gapi.auth2/-/gapi.auth2-0.0.54.tgz",
"integrity": "sha512-4HEphaKsGndb9+tnd2PBBmxloaij04iYXVsjgHpFxqbPFt5Le6pasoh5g5BEtwp/YEm9xDbzssp44BYR2/7RcQ==",
"dependencies": {
"@types/gapi": "*"
}
},
"node_modules/@types/glob": { "node_modules/@types/glob": {
"version": "7.1.3", "version": "7.1.3",
"resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz",
@ -5091,6 +5106,18 @@
"integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=",
"dev": true "dev": true
}, },
"node_modules/angularx-social-login": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/angularx-social-login/-/angularx-social-login-4.0.1.tgz",
"integrity": "sha512-dL65y0HXlKd8hhuH70/FFTxWsndEBU5DX2I1x7AcJ1ZAYpU6LPtQMbnzy10eSOcWZNeZX8XzaRaIbc4P+GjmvA==",
"dependencies": {
"tslib": "^2.0.0"
},
"peerDependencies": {
"@angular/common": "^12.0.0",
"@angular/core": "^12.0.0"
}
},
"node_modules/ansi-colors": { "node_modules/ansi-colors": {
"version": "4.1.1", "version": "4.1.1",
"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
@ -30320,6 +30347,19 @@
"@types/node": "*" "@types/node": "*"
} }
}, },
"@types/gapi": {
"version": "0.0.40",
"resolved": "https://registry.npmjs.org/@types/gapi/-/gapi-0.0.40.tgz",
"integrity": "sha512-HzV7JIp5vgCZYPLzTg+LJCEVbTbZ/wNSCatNYThNvDTtiNXU+ccrUfFLUF2akHsil+KCpf2yp9OUhLUflsOuBw=="
},
"@types/gapi.auth2": {
"version": "0.0.54",
"resolved": "https://registry.npmjs.org/@types/gapi.auth2/-/gapi.auth2-0.0.54.tgz",
"integrity": "sha512-4HEphaKsGndb9+tnd2PBBmxloaij04iYXVsjgHpFxqbPFt5Le6pasoh5g5BEtwp/YEm9xDbzssp44BYR2/7RcQ==",
"requires": {
"@types/gapi": "*"
}
},
"@types/glob": { "@types/glob": {
"version": "7.1.3", "version": "7.1.3",
"resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz",
@ -30984,6 +31024,14 @@
"integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=",
"dev": true "dev": true
}, },
"angularx-social-login": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/angularx-social-login/-/angularx-social-login-4.0.1.tgz",
"integrity": "sha512-dL65y0HXlKd8hhuH70/FFTxWsndEBU5DX2I1x7AcJ1ZAYpU6LPtQMbnzy10eSOcWZNeZX8XzaRaIbc4P+GjmvA==",
"requires": {
"tslib": "^2.0.0"
}
},
"ansi-colors": { "ansi-colors": {
"version": "4.1.1", "version": "4.1.1",
"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",

View File

@ -95,7 +95,7 @@ jhipster:
token-validity-in-seconds: 86400 token-validity-in-seconds: 86400
token-validity-in-seconds-for-remember-me: 2592000 token-validity-in-seconds-for-remember-me: 2592000
mail: # specific JHipster mail property, for standard properties see MailProperties mail: # specific JHipster mail property, for standard properties see MailProperties
base-url: http://127.0.0.1:8080 base-url: http://localhost:9000
logging: logging:
use-json-format: false # By default, logs are not in Json format use-json-format: false # By default, logs are not in Json format
logstash: # Forward logs to logstash over a socket, used by LoggingConfiguration logstash: # Forward logs to logstash over a socket, used by LoggingConfiguration

View File

@ -23,6 +23,10 @@
<strong>Registration failed!</strong> Please try again later. <strong>Registration failed!</strong> Please try again later.
</div> </div>
<div class="alert alert-danger" *ngIf="errorUserExists" jhiTranslate="register.messages.error.userexists">
<strong>Login name already registered!</strong> Please choose another one.
</div>
<div class="alert alert-danger" *ngIf="errorEmailExists" jhiTranslate="register.messages.error.emailexists"> <div class="alert alert-danger" *ngIf="errorEmailExists" jhiTranslate="register.messages.error.emailexists">
<strong>Email is already in use!</strong> Please choose another one. <strong>Email is already in use!</strong> Please choose another one.
</div> </div>
@ -34,7 +38,7 @@
<form <form
name="form" name="form"
role="form" role="form"
class="form" class="ds-form"
(ngSubmit)="register()" (ngSubmit)="register()"
[formGroup]="registerForm" [formGroup]="registerForm"
*ngIf="!success" *ngIf="!success"
@ -42,7 +46,7 @@
> >
<div class="mb-3"> <div class="mb-3">
<div class="form-group"> <div class="form-group">
<label for="name" class="form-label">Nombre</label> <label for="name" class="form-label">Nombre completo</label>
<input <input
type="text" type="text"
class="form-control" class="form-control"
@ -136,13 +140,17 @@
> >
Your email cannot be longer than 100 characters. Your email cannot be longer than 100 characters.
</small> </small>
<small class="form-text text-danger" *ngIf="registerForm.get('email')?.errors?.email">
Se requiere un correo electrónico válido.
</small>
</div> </div>
</div> </div>
</div> </div>
<div class="mb-3"> <div class="mb-3">
<div class="form-group"> <div class="form-group">
<label for="password" jhiTranslate="global.form.newpassword.label">Password</label> <label for="password">Nueva contraseña</label>
<input <input
type="password" type="password"
class="form-control" class="form-control"
@ -188,7 +196,7 @@
<div class="mb-3"> <div class="mb-3">
<div class="form-group"> <div class="form-group">
<label for="password" jhiTranslate="global.form.newpassword.label">Password</label> <label for="password">Repetir nueva contraseña</label>
<input <input
type="password" type="password"
class="form-control" class="form-control"
@ -243,7 +251,7 @@
<button <button
type="submit" type="submit"
[disabled]="registerForm.invalid" [disabled]="registerForm.invalid"
class="btn btn-primary w-100" class="ds-btn ds-btn--primary w-100"
jhiTranslate="register.form.button" jhiTranslate="register.form.button"
data-cy="submit" data-cy="submit"
> >

View File

@ -59,8 +59,8 @@ export class RegisterComponent implements AfterViewInit {
registerForm = this.fb.group({ registerForm = this.fb.group({
name: ['', [Validators.required, Validators.minLength(2), Validators.maxLength(254)]], name: ['', [Validators.required, Validators.minLength(2), Validators.maxLength(254)]],
email: ['', [Validators.required, Validators.minLength(5), Validators.maxLength(254), Validators.email]], email: ['', [Validators.required, Validators.minLength(5), Validators.maxLength(254), Validators.email]],
password: ['', [Validators.required, Validators.minLength(4), Validators.maxLength(50)]], password: ['', [Validators.required, Validators.minLength(8), Validators.maxLength(50)]],
confirmPassword: ['', [Validators.required, Validators.minLength(4), Validators.maxLength(50)]], confirmPassword: ['', [Validators.required, Validators.minLength(8), Validators.maxLength(50)]],
}); });
constructor(private translateService: TranslateService, private registerService: RegisterService, private fb: FormBuilder) {} constructor(private translateService: TranslateService, private registerService: RegisterService, private fb: FormBuilder) {}
@ -84,7 +84,6 @@ 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;
console.log(name);
this.registerService this.registerService
.save({ .save({

View File

@ -179,7 +179,6 @@ export class SettingsComponent implements OnInit {
icon.class = 'active'; icon.class = 'active';
} }
}); });
console.log(this.profileIcons);
this.usersSharedCollection = this.userService.addUserToCollectionIfMissing(this.usersSharedCollection, usuarioExtra.user); this.usersSharedCollection = this.userService.addUserToCollectionIfMissing(this.usersSharedCollection, usuarioExtra.user);
this.plantillasSharedCollection = this.plantillaService.addPlantillaToCollectionIfMissing( this.plantillasSharedCollection = this.plantillaService.addPlantillaToCollectionIfMissing(

View File

@ -36,6 +36,7 @@ export class AuthServerProvider {
return new Observable(observer => { return new Observable(observer => {
this.localStorageService.clear('authenticationToken'); this.localStorageService.clear('authenticationToken');
this.sessionStorageService.clear('authenticationToken'); this.sessionStorageService.clear('authenticationToken');
this.localStorageService.clear('IsGoogle');
observer.complete(); observer.complete();
}); });
} }

View File

@ -1,8 +1,8 @@
<form *ngIf="categoria" name="deleteForm" (ngSubmit)="confirmDelete(categoria.id!)"> <form class="ds-form" *ngIf="categoria" name="deleteForm" (ngSubmit)="confirmDelete(categoria.id!)">
<div class="modal-header"> <div class="modal-header">
<h4 class="modal-title" data-cy="categoriaDeleteDialogHeading" jhiTranslate="entity.delete.title">Confirm delete operation</h4> <h4 class="modal-title" data-cy="categoriaDeleteDialogHeading" jhiTranslate="entity.delete.title">Confirm delete operation</h4>
<button type="button" class="close" data-dismiss="modal" aria-hidden="true" (click)="cancel()">&times;</button> <button type="button" class="ds-btn close" data-dismiss="modal" aria-hidden="true" (click)="cancel()">&times;</button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
@ -14,11 +14,11 @@
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn 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>&nbsp;<span jhiTranslate="entity.action.cancel">Cancel</span> <fa-icon icon="ban"></fa-icon>&nbsp;<span jhiTranslate="entity.action.cancel">Cancel</span>
</button> </button>
<button id="jhi-confirm-delete-categoria" data-cy="entityConfirmDeleteButton" type="submit" class="btn 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>&nbsp;<span jhiTranslate="entity.action.delete">Delete</span> <fa-icon icon="times"></fa-icon>&nbsp;<span jhiTranslate="entity.action.delete">Delete</span>
</button> </button>
</div> </div>

View File

@ -24,11 +24,11 @@
</dd> </dd>
</dl> </dl>
<button type="submit" (click)="previousState()" class="btn btn-info" data-cy="entityDetailsBackButton"> <button type="submit" (click)="previousState()" class="btn btn-ds btn-info" data-cy="entityDetailsBackButton">
<fa-icon icon="arrow-left"></fa-icon>&nbsp;<span jhiTranslate="entity.action.back">Back</span> <fa-icon icon="arrow-left"></fa-icon>&nbsp;<span jhiTranslate="entity.action.back">Back</span>
</button> </button>
<button type="button" [routerLink]="['/categoria', categoria.id, 'edit']" class="btn btn-primary"> <button type="button" [routerLink]="['/categoria', categoria.id, 'edit']" class="btn btn-ds btn-ds-primary btn-primary">
<fa-icon icon="pencil-alt"></fa-icon>&nbsp;<span jhiTranslate="entity.action.edit">Edit</span> <fa-icon icon="pencil-alt"></fa-icon>&nbsp;<span jhiTranslate="entity.action.edit">Edit</span>
</button> </button>
</div> </div>

View File

@ -3,15 +3,10 @@
<span jhiTranslate="dataSurveyApp.categoria.home.title">Categorias</span> <span jhiTranslate="dataSurveyApp.categoria.home.title">Categorias</span>
<div class="d-flex justify-content-end"> <div class="d-flex justify-content-end">
<button class="btn btn-info mr-2" (click)="loadAll()" [disabled]="isLoading">
<fa-icon icon="sync" [spin]="isLoading"></fa-icon>
<span jhiTranslate="dataSurveyApp.categoria.home.refreshListLabel">Refresh List</span>
</button>
<button <button
id="jh-create-entity" id="jh-create-entity"
data-cy="entityCreateButton" data-cy="entityCreateButton"
class="btn btn-primary jh-create-entity create-categoria" class="jh-create-entity create-categoria ds-btn ds-btn--primary"
[routerLink]="['/categoria/new']" [routerLink]="['/categoria/new']"
> >
<fa-icon icon="plus"></fa-icon> <fa-icon icon="plus"></fa-icon>
@ -32,13 +27,12 @@
<form class="ds-form"> <form class="ds-form">
<div class="input-group"> <div class="input-group">
<div class="input-group-addon"><i class="glyphicon glyphicon-search"></i></div> <div class="input-group-addon"><i class="glyphicon glyphicon-search"></i></div>
<input type="text" class="form-control" name="searchString" placeholder="Type to search..." [(ngModel)]="searchString" /> <input type="text" name="searchString" placeholder="Buscar..." [(ngModel)]="searchString" />
</div> </div>
</form> </form>
<table class="table table-striped" aria-describedby="page-heading"> <table class="table table-striped" aria-describedby="page-heading">
<thead> <thead>
<tr> <tr>
<th scope="col"><span jhiTranslate="global.field.id">ID</span></th>
<th scope="col"><span jhiTranslate="dataSurveyApp.categoria.nombre">Nombre</span></th> <th scope="col"><span jhiTranslate="dataSurveyApp.categoria.nombre">Nombre</span></th>
<th scope="col"><span jhiTranslate="dataSurveyApp.categoria.estado">Estado</span></th> <th scope="col"><span jhiTranslate="dataSurveyApp.categoria.estado">Estado</span></th>
<th scope="col"></th> <th scope="col"></th>
@ -46,34 +40,21 @@
</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>
<a [routerLink]="['/categoria', categoria.id, 'view']">{{ categoria.id }}</a>
</td>
<td>{{ categoria.nombre }}</td> <td>{{ categoria.nombre }}</td>
<td jhiTranslate="{{ 'dataSurveyApp.EstadoCategoria.' + categoria.estado }}">{{ categoria.estado }}</td> <td jhiTranslate="{{ 'dataSurveyApp.EstadoCategoria.' + categoria.estado }}">{{ categoria.estado }}</td>
<td class="text-right"> <td class="text-right">
<div class="btn-group"> <div class="btn-group">
<button
type="submit"
[routerLink]="['/categoria', categoria.id, 'view']"
class="btn btn-info btn-sm"
data-cy="entityDetailsButton"
>
<fa-icon icon="eye"></fa-icon>
<span class="d-none d-md-inline" jhiTranslate="entity.action.view">View</span>
</button>
<button <button
type="submit" type="submit"
[routerLink]="['/categoria', categoria.id, 'edit']" [routerLink]="['/categoria', categoria.id, 'edit']"
class="btn btn-primary btn-sm" class="btn-sm ds-btn ds-btn--primary"
data-cy="entityEditButton" data-cy="entityEditButton"
> >
<fa-icon icon="pencil-alt"></fa-icon> <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 btn-danger btn-sm" data-cy="entityDeleteButton"> <button type="submit" (click)="delete(categoria)" class="btn-sm ds-btn ds-btn--danger" data-cy="entityDeleteButton">
<fa-icon icon="times"></fa-icon> <fa-icon icon="times"></fa-icon>
<span class="d-none d-md-inline" jhiTranslate="entity.action.delete">Delete</span> <span class="d-none d-md-inline" jhiTranslate="entity.action.delete">Delete</span>
</button> </button>

View File

@ -1,12 +1,15 @@
<div class="row justify-content-center"> <div class="row justify-content-center">
<div class="col-8"> <div class="col-8">
<form name="editForm" role="form" novalidate (ngSubmit)="save()" [formGroup]="editForm"> <form name="editForm" role="form" novalidate (ngSubmit)="save()" [formGroup]="editForm" class="ds-form">
<h2 id="jhi-categoria-heading" data-cy="CategoriaCreateUpdateHeading" jhiTranslate="dataSurveyApp.categoria.home.createOrEditLabel"> <h2 id="jhi-categoria-heading" data-cy="CategoriaCreateUpdateHeading" jhiTranslate="dataSurveyApp.categoria.home.createOrEditLabel">
Create or edit a Categoria Create or edit a Category
</h2> </h2>
<div> <div>
<jhi-alert-error></jhi-alert-error> <jhi-alert-error></jhi-alert-error>
<div class="alert alert-danger" *ngIf="duplicateName" jhiTranslate="dataSurveyApp.categoria.errors.duplicateName">
A category with that name already exists.
</div>
<div class="form-group" [hidden]="editForm.get('id')!.value == null"> <div class="form-group" [hidden]="editForm.get('id')!.value == null">
<label class="form-control-label" jhiTranslate="global.field.id" for="field_id">ID</label> <label class="form-control-label" jhiTranslate="global.field.id" for="field_id">ID</label>
@ -39,7 +42,13 @@
</div> </div>
<div> <div>
<button type="button" id="cancel-save" data-cy="entityCreateCancelButton" class="btn btn-secondary" (click)="previousState()"> <button
type="button"
id="cancel-save"
data-cy="entityCreateCancelButton"
class="btn btn-secondary ds-btn ds-btn-secondary"
(click)="previousState()"
>
<fa-icon icon="ban"></fa-icon>&nbsp;<span jhiTranslate="entity.action.cancel">Cancel</span> <fa-icon icon="ban"></fa-icon>&nbsp;<span jhiTranslate="entity.action.cancel">Cancel</span>
</button> </button>
@ -48,7 +57,7 @@
id="save-entity" id="save-entity"
data-cy="entityCreateSaveButton" data-cy="entityCreateSaveButton"
[disabled]="editForm.invalid || isSaving" [disabled]="editForm.invalid || isSaving"
class="btn btn-primary" class="btn btn-primary ds-btn ds-btn-primary"
> >
<fa-icon icon="save"></fa-icon>&nbsp;<span jhiTranslate="entity.action.save">Save</span> <fa-icon icon="save"></fa-icon>&nbsp;<span jhiTranslate="entity.action.save">Save</span>
</button> </button>

View File

@ -14,19 +14,32 @@ import { CategoriaService } from '../service/categoria.service';
}) })
export class CategoriaUpdateComponent implements OnInit { export class CategoriaUpdateComponent implements OnInit {
isSaving = false; isSaving = false;
public categorias?: ICategoria[];
editForm = this.fb.group({ editForm = this.fb.group({
id: [], id: [],
nombre: [null, [Validators.required]], nombre: [null, [Validators.required]],
estado: [null, [Validators.required]], estado: [null, [Validators.required]],
}); });
public duplicateName: boolean;
constructor(protected categoriaService: CategoriaService, protected activatedRoute: ActivatedRoute, protected fb: FormBuilder) {} constructor(protected categoriaService: CategoriaService, protected activatedRoute: ActivatedRoute, protected fb: FormBuilder) {
this.duplicateName = false;
this.categorias = [];
this.loadAll();
}
ngOnInit(): void { ngOnInit(): void {
this.activatedRoute.data.subscribe(({ categoria }) => { this.activatedRoute.data.subscribe(({ categoria }) => {
this.updateForm(categoria); this.updateForm(categoria);
}); });
this.loadAll();
}
loadAll(): void {
this.categoriaService.query().subscribe(res => {
this.categorias = res.body ?? [];
});
} }
previousState(): void { previousState(): void {
@ -36,11 +49,23 @@ export class CategoriaUpdateComponent implements OnInit {
save(): void { save(): void {
this.isSaving = true; this.isSaving = true;
const categoria = this.createFromForm(); const categoria = this.createFromForm();
const condicion = this.categoryExists(categoria);
if (!condicion) {
if (categoria.id !== undefined) { if (categoria.id !== undefined) {
this.subscribeToSaveResponse(this.categoriaService.update(categoria)); this.subscribeToSaveResponse(this.categoriaService.update(categoria));
} else { } else {
this.subscribeToSaveResponse(this.categoriaService.create(categoria)); this.subscribeToSaveResponse(this.categoriaService.create(categoria));
} }
} else {
this.duplicateName = true;
this.isSaving = false;
}
}
protected categoryExists(categoria: ICategoria): boolean {
this.loadAll();
var condicion = this.categorias!.some(cat => cat.nombre!.toLowerCase() === categoria.nombre!.toLowerCase());
return condicion;
} }
protected subscribeToSaveResponse(result: Observable<HttpResponse<ICategoria>>): void { protected subscribeToSaveResponse(result: Observable<HttpResponse<ICategoria>>): void {

View File

@ -1,21 +1,11 @@
<div> <div>
<h2 id="page-heading" data-cy="UsuarioExtraHeading"> <h2 id="page-heading" data-cy="UsuarioExtraHeading">
<span jhiTranslate="dataSurveyApp.usuarioExtra.home.title">Usuario Extras</span> <span jhiTranslate="dataSurveyApp.usuarioExtra.home.title">Usuarios</span>
<div class="d-flex justify-content-end"> <div class="d-flex justify-content-end">
<button class="btn btn-info mr-2" (click)="loadAll()" [disabled]="isLoading"> <button id="jh-create-entity" data-cy="entityCreateButton" class="ds-btn ds-btn--primary" [routerLink]="['/usuario-extra/new']">
<fa-icon icon="sync" [spin]="isLoading"></fa-icon>
<span jhiTranslate="dataSurveyApp.usuarioExtra.home.refreshListLabel">Refresh List</span>
</button>
<button
id="jh-create-entity"
data-cy="entityCreateButton"
class="btn btn-primary jh-create-entity create-usuario-extra"
[routerLink]="['/usuario-extra/new']"
>
<fa-icon icon="plus"></fa-icon> <fa-icon icon="plus"></fa-icon>
<span jhiTranslate="dataSurveyApp.usuarioExtra.home.createLabel"> Create a new Usuario Extra </span> <span jhiTranslate="dataSurveyApp.usuarioExtra.home.createLabel"> Create a new administrador </span>
</button> </button>
</div> </div>
</h2> </h2>
@ -32,10 +22,10 @@
<table class="table table-striped" aria-describedby="page-heading"> <table class="table table-striped" aria-describedby="page-heading">
<thead> <thead>
<tr> <tr>
<th scope="col"><span>Rol</span></th> <th scope="col"><span jhiTranslate="dataSurveyApp.usuarioExtra.rol">Rol</span></th>
<th scope="col"><span jhiTranslate="dataSurveyApp.usuarioExtra.iconoPerfil">Icono Perfil</span></th> <th scope="col"><span jhiTranslate="dataSurveyApp.usuarioExtra.iconoPerfil">Icono</span></th>
<th scope="col"><span jhiTranslate="dataSurveyApp.usuarioExtra.nombre">Nombre Usuario</span></th> <th scope="col"><span jhiTranslate="dataSurveyApp.usuarioExtra.nombre">Nombre Usuario</span></th>
<th scope="col"><span>Correo electrónico</span></th> <th scope="col"><span jhiTranslate="dataSurveyApp.usuarioExtra.correo">Correo electrónico</span></th>
<th scope="col"><span jhiTranslate="dataSurveyApp.usuarioExtra.estado">Estado</span></th> <th scope="col"><span jhiTranslate="dataSurveyApp.usuarioExtra.estado">Estado</span></th>
<!--<th scope="col"><span jhiTranslate="dataSurveyApp.usuarioExtra.plantilla">Plantilla</span></th>--> <!--<th scope="col"><span jhiTranslate="dataSurveyApp.usuarioExtra.plantilla">Plantilla</span></th>-->
<th scope="col"></th> <th scope="col"></th>
@ -62,19 +52,19 @@
>{{ last ? '' : ', ' }} >{{ last ? '' : ', ' }}
</span> </span>
</td>--> </td>-->
<td class="text-right"> <td class="text-center">
<div class="btn-group"> <div class="btn-group">
<button <button
type="submit" type="submit"
[routerLink]="['/usuario-extra', usuarioExtra.id, 'view']" [routerLink]="['/usuario-extra', usuarioExtra.id, 'view']"
class="btn btn-info btn-sm" class="ds-btn ds-btn--primary btn-sm"
data-cy="entityDetailsButton" data-cy="entityDetailsButton"
> >
<fa-icon icon="eye"></fa-icon> <fa-icon icon="eye"></fa-icon>
<span class="d-none d-md-inline" jhiTranslate="entity.action.view">View</span> <span class="d-none d-md-inline" jhiTranslate="entity.action.view">View</span>
</button> </button>
&nbsp;&nbsp;
<button type="submit" (click)="delete(usuarioExtra)" class="btn btn-danger btn-sm" data-cy="entityDeleteButton"> <button type="submit" (click)="delete(usuarioExtra)" class="ds-btn ds-btn--danger btn-sm" data-cy="entityDeleteButton">
<fa-icon icon="times"></fa-icon> <fa-icon icon="times"></fa-icon>
<span class="d-none d-md-inline" jhiTranslate="entity.action.delete">Delete</span> <span class="d-none d-md-inline" jhiTranslate="entity.action.delete">Delete</span>
</button> </button>

View File

@ -10,3 +10,7 @@
list-style: none; list-style: none;
padding-left: 10px; padding-left: 10px;
} }
.btn-group button {
margin: 0 2px;
}

View File

@ -30,9 +30,9 @@ export class UsuarioExtraComponent implements OnInit {
rolList = user.authorities; rolList = user.authorities;
let a = rolList?.pop(); let a = rolList?.pop();
if (a == 'ROLE_ADMIN') { if (a == 'ROLE_ADMIN') {
user.authorities = ['ADMIN']; user.authorities = ['Admin'];
} else if (a == 'ROLE_USER') { } else if (a == 'ROLE_USER') {
user.authorities = ['USUARIO']; user.authorities = ['Usuario'];
} }
}); });
this.publicUsers = res; this.publicUsers = res;

View File

@ -9,12 +9,12 @@
<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">
<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">
REGISTRAR ADMIN REGISTRAR ADMINISTRADOR
</h4> </h4>
<p class="mb-4" style="color: rgba(146, 146, 146, 0.664)">Ingrese los datos para registrar a un admin.</p> <p class="mb-4" style="color: rgba(146, 146, 146, 0.664)">Ingrese los datos para registrar a un admin.</p>
</div> </div>
<div class="alert alert-success" *ngIf="success" jhiTranslate="register.messages.adminsuccess"> <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>
@ -22,6 +22,10 @@
<strong>Registration failed!</strong> Please try again later. <strong>Registration failed!</strong> Please try again later.
</div> </div>
<div class="alert alert-danger" *ngIf="errorUserExists" jhiTranslate="register.messages.error.userexists">
<strong>Login name already registered!</strong> Please choose another one.
</div>
<div class="alert alert-danger" *ngIf="errorEmailExists" jhiTranslate="register.messages.error.emailexists"> <div class="alert alert-danger" *ngIf="errorEmailExists" jhiTranslate="register.messages.error.emailexists">
<strong>Email is already in use!</strong> Please choose another one. <strong>Email is already in use!</strong> Please choose another one.
</div> </div>
@ -30,16 +34,24 @@
The password and its confirmation do not match! The password and its confirmation do not match!
</div> </div>
<form name="form" role="form" class="form" (ngSubmit)="register()" [formGroup]="registerForm" *ngIf="!success" autocomplete="off"> <form
name="form"
role="form"
class="ds-form"
(ngSubmit)="register()"
[formGroup]="registerForm"
*ngIf="!success"
autocomplete="off"
>
<div class="mb-3"> <div class="mb-3">
<div class="form-group"> <div class="form-group">
<label for="name" class="form-label">Nombre</label> <label for="name" class="form-label">Nombre completo</label>
<input <input
type="text" type="text"
class="form-control" class="form-control"
id="name" id="name"
name="name" name="name"
placeholder="{{ 'global.form.name.placeholder' | translate }}" placeholder="Nombre completo"
formControlName="name" formControlName="name"
data-cy="name" data-cy="name"
/> />
@ -82,13 +94,13 @@
<div class="mb-3"> <div class="mb-3">
<div class="form-group"> <div class="form-group">
<label for="emailaddress" class="form-label">Correo electrónico</label> <label for="email" class="form-label">Correo electrónico</label>
<input <input
type="email" type="email"
class="form-control" class="form-control"
id="email" id="email"
name="email" name="email"
placeholder="{{ 'global.form.email.placeholder' | translate }}" placeholder="Correo electrónico"
formControlName="email" formControlName="email"
data-cy="email" data-cy="email"
/> />
@ -125,13 +137,17 @@
> >
Your email cannot be longer than 100 characters. Your email cannot be longer than 100 characters.
</small> </small>
<small class="form-text text-danger" *ngIf="registerForm.get('email')?.errors?.email">
Se requiere un correo electrónico válido.
</small>
</div> </div>
</div> </div>
</div> </div>
<div class="mb-3"> <div class="mb-3">
<div class="form-group"> <div class="form-group">
<label for="password" jhiTranslate="global.form.newpassword.label">Password</label> <label for="password">Nueva contraseña</label>
<input <input
type="password" type="password"
class="form-control" class="form-control"
@ -176,7 +192,7 @@
<div class="mb-3"> <div class="mb-3">
<div class="form-group"> <div class="form-group">
<label for="password" jhiTranslate="global.form.newpassword.label">Password</label> <label for="password">Repetir nueva contraseña</label>
<input <input
type="password" type="password"
class="form-control" class="form-control"
@ -231,7 +247,7 @@
<button <button
type="submit" type="submit"
[disabled]="registerForm.invalid" [disabled]="registerForm.invalid"
class="btn btn-primary w-100" class="ds-btn ds-btn--primary w-100"
jhiTranslate="register.form.button" jhiTranslate="register.form.button"
data-cy="submit" data-cy="submit"
> >

View File

@ -57,8 +57,8 @@ export class UsuarioExtraUpdateComponent {
registerForm = this.fb.group({ registerForm = this.fb.group({
name: ['', [Validators.required, Validators.minLength(2), Validators.maxLength(254)]], name: ['', [Validators.required, Validators.minLength(2), Validators.maxLength(254)]],
email: ['', [Validators.required, Validators.minLength(5), Validators.maxLength(254), Validators.email]], email: ['', [Validators.required, Validators.minLength(5), Validators.maxLength(254), Validators.email]],
password: ['', [Validators.required, Validators.minLength(4), Validators.maxLength(50)]], password: ['', [Validators.required, Validators.minLength(8), Validators.maxLength(50)]],
confirmPassword: ['', [Validators.required, Validators.minLength(4), Validators.maxLength(50)]], confirmPassword: ['', [Validators.required, Validators.minLength(8), Validators.maxLength(50)]],
}); });
constructor(private translateService: TranslateService, private registerService: RegisterService, private fb: FormBuilder) {} constructor(private translateService: TranslateService, private registerService: RegisterService, private fb: FormBuilder) {}
@ -82,7 +82,6 @@ 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;
console.log(name);
this.registerService this.registerService
.save({ .save({

View File

@ -77,7 +77,7 @@
<li class="position-absolute fixed-bottom w-100 mb-5"> <li class="position-absolute fixed-bottom w-100 mb-5">
<a (click)="logout()" class="p-3 w-100 m-0 text-center"> <a (click)="logout()" class="p-3 w-100 m-0 text-center">
<!-- <i class="nc-icon nc-user-run"></i> --> <!-- <i class="nc-icon nc-user-run"></i> -->
<p style="letter-spacing: 0.3rem">Cerrar Sesion</p> <p style="letter-spacing: 0.3rem">Cerrar Sesión</p>
</a> </a>
</li> </li>
<li class="position-absolute fixed-bottom w-100 mb-5" style="bottom: -4rem"> <li class="position-absolute fixed-bottom w-100 mb-5" style="bottom: -4rem">

View File

@ -6,7 +6,7 @@ import { Account } from 'app/core/auth/account.model';
import { AccountService } from 'app/core/auth/account.service'; import { AccountService } from 'app/core/auth/account.service';
import { LoginService } from 'app/login/login.service'; import { LoginService } from 'app/login/login.service';
import { ProfileService } from 'app/layouts/profiles/profile.service'; import { ProfileService } from 'app/layouts/profiles/profile.service';
import { SessionStorageService } from 'ngx-webstorage'; import { LocalStorageService, SessionStorageService } from 'ngx-webstorage';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import { UsuarioExtraService } from 'app/entities/usuario-extra/service/usuario-extra.service'; import { UsuarioExtraService } from 'app/entities/usuario-extra/service/usuario-extra.service';
import { UsuarioExtra } from 'app/entities/usuario-extra/usuario-extra.model'; import { UsuarioExtra } from 'app/entities/usuario-extra/usuario-extra.model';
@ -31,6 +31,7 @@ export class SidebarComponent {
constructor( constructor(
private loginService: LoginService, private loginService: LoginService,
private sessionStorageService: SessionStorageService, private sessionStorageService: SessionStorageService,
private localStorageService: LocalStorageService,
private accountService: AccountService, private accountService: AccountService,
private profileService: ProfileService, private profileService: ProfileService,
private router: Router, private router: Router,
@ -87,6 +88,7 @@ export class SidebarComponent {
this.collapseNavbar(); this.collapseNavbar();
this.loginService.logout(); this.loginService.logout();
this.router.navigate(['']); this.router.navigate(['']);
this.localStorageService.clear('IsGoogle');
} }
toggleNavbar(): void { toggleNavbar(): void {

View File

@ -69,9 +69,9 @@
<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">
<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">
INICIAR SESION INICIAR SESIÓN
</h4> </h4>
<p class="mb-4" style="color: rgba(146, 146, 146, 0.664)">Ingrese su correo electrónico y contraseña.</p> <p class="mb-4" style="color: rgba(146, 146, 146, 0.664)">Ingrese su correo electrónico y contraseña</p>
</div> </div>
<div <div
@ -82,10 +82,11 @@
> >
<strong>Failed to sign in!</strong> Please check your credentials and try again. <strong>Failed to sign in!</strong> Please check your credentials and try again.
</div> </div>
<form class="form" role="form" (ngSubmit)="login()" [formGroup]="loginForm">
<form class="ds-form" role="form" (ngSubmit)="login()" [formGroup]="loginForm">
<div class="mb-3"> <div class="mb-3">
<div class="form-group"> <div class="form-group">
<label for="emailaddress" class="form-label">Correo electrónico</label> <label for="username" class="form-label">Correo electrónico</label>
<input <input
type="text" type="text"
class="form-control" class="form-control"
@ -96,6 +97,41 @@
#username #username
data-cy="username" data-cy="username"
/> />
<div
*ngIf="loginForm.get('username')!.invalid && (loginForm.get('username')!.dirty || loginForm.get('username')!.touched)"
>
<small
class="form-text text-danger"
*ngIf="loginForm.get('username')?.errors?.required"
jhiTranslate="global.messages.validate.email.required"
>
Your email is required
</small>
<small
class="form-text text-danger"
*ngIf="loginForm.get('username')?.errors?.email"
jhiTranslate="global.messages.validate.email.invalid"
>
Your email is invalid
</small>
<!--<small
class="form-text text-danger"
*ngIf="loginForm.get('username')?.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="loginForm.get('username')?.errors?.maxlength"
jhiTranslate="global.messages.validate.email.maxlength"
>
Your email cannot be longer than 100 characters
</small>
</div>
</div> </div>
</div> </div>
@ -111,6 +147,33 @@
formControlName="password" formControlName="password"
data-cy="password" data-cy="password"
/> />
<div
*ngIf="loginForm.get('password')!.invalid && (loginForm.get('password')!.dirty || loginForm.get('password')!.touched)"
>
<small
class="form-text text-danger"
*ngIf="loginForm.get('password')?.errors?.required"
jhiTranslate="global.messages.validate.newpassword.required"
>
Your password is required
</small>
<small
class="form-text text-danger"
*ngIf="loginForm.get('password')?.errors?.minlength"
jhiTranslate="global.messages.validate.newpassword.minlength"
>
Your password is required to be at least 8 characters
</small>
<small
class="form-text text-danger"
*ngIf="loginForm.get('password')?.errors?.maxlength"
jhiTranslate="global.messages.validate.newpassword.maxlength"
>
Your password cannot be longer than 50 characters
</small>
</div>
</div> </div>
</div> </div>
@ -125,16 +188,27 @@
</div> </div>
<div class="mb-3 mb-0 text-center"> <div class="mb-3 mb-0 text-center">
<button type="submit" class="btn btn-primary w-100" data-cy="submit">Iniciar sesion</button> <button type="submit" class="ds-btn ds-btn--primary w-100" data-cy="submit">Iniciar sesión</button>
</div>
<div class="mb-3 mb-0 text-center">
<button
type="button"
class="ds-btn ds-btn--google w-100 d-flex align-items-center justify-content-center"
(click)="signInWithGoogle()"
>
<img class="mr-2" src="https://upload.wikimedia.org/wikipedia/commons/5/53/Google_%22G%22_Logo.svg" />
Iniciar con Google
</button>
</div> </div>
</form> </form>
<div class="google-btn w-80 m-auto"> <!-- <div class="google-btn w-80 m-auto">
<div class="google-icon-wrapper"> <div class="google-icon-wrapper">
<img class="google-icon" src="https://upload.wikimedia.org/wikipedia/commons/5/53/Google_%22G%22_Logo.svg" /> <img class="google-icon" src="https://upload.wikimedia.org/wikipedia/commons/5/53/Google_%22G%22_Logo.svg" />
</div> </div>
<button class="btn-text" (click)="signInWithGoogle()">Iniciar con Google</button> <button class="btn-text" (click)="signInWithGoogle()">Iniciar con Google</button>
</div> </div> -->
<!--<div class="mb-3 mb-0"> <!--<div class="mb-3 mb-0">
<button class="btn" (click)="signInWithGoogle()"> <button class="btn" (click)="signInWithGoogle()">

View File

@ -12,6 +12,7 @@ import { AccountService } from 'app/core/auth/account.service';
import { LoginService } from './login.service'; import { LoginService } from './login.service';
import { LoginComponent } from './login.component'; import { LoginComponent } from './login.component';
import { SocialAuthService } from 'angularx-social-login';
describe('Component Tests', () => { describe('Component Tests', () => {
describe('LoginComponent', () => { describe('LoginComponent', () => {

View File

@ -10,6 +10,7 @@ import { RegisterService } from '../account/register/register.service';
import { TranslateService } from '@ngx-translate/core'; import { TranslateService } from '@ngx-translate/core';
import { HttpErrorResponse } from '@angular/common/http'; import { HttpErrorResponse } from '@angular/common/http';
import { EMAIL_ALREADY_USED_TYPE, LOGIN_ALREADY_USED_TYPE } from '../config/error.constants'; import { EMAIL_ALREADY_USED_TYPE, LOGIN_ALREADY_USED_TYPE } from '../config/error.constants';
import { LocalStorageService } from 'ngx-webstorage';
@Component({ @Component({
selector: 'jhi-login', selector: 'jhi-login',
@ -26,8 +27,8 @@ export class LoginComponent implements OnInit, AfterViewInit {
errorUserExists = false; errorUserExists = false;
loginForm = this.fb.group({ loginForm = this.fb.group({
username: [null, [Validators.required]], username: [null, [Validators.required, Validators.email, Validators.maxLength(254)]],
password: [null, [Validators.required]], password: [null, [Validators.required, Validators.minLength(8), Validators.maxLength(50)]],
rememberMe: [false], rememberMe: [false],
}); });
@ -36,6 +37,7 @@ export class LoginComponent implements OnInit, AfterViewInit {
success = false; success = false;
constructor( constructor(
private localStorageService: LocalStorageService,
private accountService: AccountService, private accountService: AccountService,
private loginService: LoginService, private loginService: LoginService,
private router: Router, private router: Router,
@ -67,7 +69,7 @@ export class LoginComponent implements OnInit, AfterViewInit {
} }
ngAfterViewInit(): void { ngAfterViewInit(): void {
this.username.nativeElement.focus(); // this.username.nativeElement.focus();
} }
//Inicio Google //Inicio Google
@ -91,7 +93,7 @@ export class LoginComponent implements OnInit, AfterViewInit {
() => { () => {
this.authenticationError = false; this.authenticationError = false;
if (!this.router.getCurrentNavigation()) { if (!this.router.getCurrentNavigation()) {
window.localStorage.setItem('IsGoogle', 'true'); this.localStorageService.store('IsGoogle', 'true');
// There were no routing during login (eg from navigationToStoredUrl) // There were no routing during login (eg from navigationToStoredUrl)
this.router.navigate(['']); this.router.navigate(['']);
} }

View File

@ -52,3 +52,14 @@
color: #d33232; color: #d33232;
} }
} }
.ds-btn--google {
background-color: transparent;
color: #787878;
border: 1px solid #e6e6e6;
img {
width: 20px;
height: 20px;
}
}

View File

@ -13,7 +13,8 @@ $form-background: #f1f5f9;
} }
} }
input { input,
input:-webkit-autofill {
background-color: $form-background; background-color: $form-background;
border-radius: 15px; border-radius: 15px;
border: 1.75px solid transparent; border: 1.75px solid transparent;
@ -44,3 +45,11 @@ $form-background: #f1f5f9;
color: #757d94; color: #757d94;
} }
} }
input:-internal-autofill-selected,
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
background-color: $form-background !important;
}

View File

@ -2,8 +2,8 @@
"dataSurveyApp": { "dataSurveyApp": {
"AccesoEncuesta": { "AccesoEncuesta": {
"null": "", "null": "",
"PUBLIC": "PUBLIC", "PUBLIC": "Pública",
"PRIVATE": "PRIVATE" "PRIVATE": "Privada"
} }
} }
} }

View File

@ -5,7 +5,7 @@
"title": "Categorías", "title": "Categorías",
"refreshListLabel": "Refrescar lista", "refreshListLabel": "Refrescar lista",
"createLabel": "Crear nueva Categoría", "createLabel": "Crear nueva Categoría",
"createOrEditLabel": "Crear o editar 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": "Una nueva Categoría ha sido creada con el identificador {{ param }}",
@ -21,7 +21,10 @@
"nombre": "Nombre", "nombre": "Nombre",
"estado": "Estado", "estado": "Estado",
"encuesta": "Encuesta", "encuesta": "Encuesta",
"plantilla": "Plantilla" "plantilla": "Plantilla",
"errors": {
"duplicateName": "Ya existe una categoría con ese nombre."
}
} }
} }
} }

View File

@ -31,7 +31,7 @@
"usuarioEncuesta": "Usuario Encuesta", "usuarioEncuesta": "Usuario Encuesta",
"ePreguntaAbierta": "E Pregunta Abierta", "ePreguntaAbierta": "E Pregunta Abierta",
"ePreguntaCerrada": "E Pregunta Cerrada", "ePreguntaCerrada": "E Pregunta Cerrada",
"categoria": "Categoria", "categoria": "Categoría",
"usuarioExtra": "Usuario Extra" "usuarioExtra": "Usuario Extra"
} }
} }

View File

@ -2,8 +2,8 @@
"dataSurveyApp": { "dataSurveyApp": {
"EstadoCategoria": { "EstadoCategoria": {
"null": "", "null": "",
"ACTIVE": "ACTIVA", "ACTIVE": "Activa",
"INACTIVE": "INACTIVA" "INACTIVE": "Inactiva"
} }
} }
} }

View File

@ -2,8 +2,8 @@
"dataSurveyApp": { "dataSurveyApp": {
"EstadoColaborador": { "EstadoColaborador": {
"null": "", "null": "",
"PENDING": "PENDING", "PENDING": "Pendiente",
"ACTIVE": "ACTIVE" "ACTIVE": "Activo"
} }
} }
} }

View File

@ -2,10 +2,10 @@
"dataSurveyApp": { "dataSurveyApp": {
"EstadoEncuesta": { "EstadoEncuesta": {
"null": "", "null": "",
"DRAFT": "DRAFT", "DRAFT": "Borrador",
"ACTIVE": "ACTIVE", "ACTIVE": "Activa",
"FINISHED": "FINISHED", "FINISHED": "Finalizada",
"DELETED": "DELETED" "DELETED": "Eliminada"
} }
} }
} }

View File

@ -2,10 +2,10 @@
"dataSurveyApp": { "dataSurveyApp": {
"EstadoPlantilla": { "EstadoPlantilla": {
"null": "", "null": "",
"DRAFT": "DRAFT", "DRAFT": "Borrador",
"ACTIVE": "ACTIVE", "ACTIVE": "Activa",
"DELETED": "DELETED", "DELETED": "Eliminada",
"DISABLED": "DISABLED" "DISABLED": "Desactivada"
} }
} }
} }

View File

@ -2,8 +2,8 @@
"dataSurveyApp": { "dataSurveyApp": {
"EstadoUsuario": { "EstadoUsuario": {
"null": "", "null": "",
"ACTIVE": "ACTIVE", "ACTIVE": "Activo",
"SUSPENDED": "SUSPENDED" "SUSPENDED": "Bloqueado"
} }
} }
} }

View File

@ -15,7 +15,7 @@
"ePreguntaCerrada": "E Pregunta Cerrada", "ePreguntaCerrada": "E Pregunta Cerrada",
"ePreguntaCerradaOpcion": "E Pregunta Cerrada Opcion", "ePreguntaCerradaOpcion": "E Pregunta Cerrada Opcion",
"usuarioEncuesta": "Usuario Encuesta", "usuarioEncuesta": "Usuario Encuesta",
"categoria": "Categoria", "categoria": "Categoría",
"factura": "Factura", "factura": "Factura",
"plantilla": "Plantilla", "plantilla": "Plantilla",
"pPreguntaAbierta": "P Pregunta Abierta", "pPreguntaAbierta": "P Pregunta Abierta",
@ -78,13 +78,13 @@
"validate": { "validate": {
"newpassword": { "newpassword": {
"required": "Se requiere que ingrese una contraseña.", "required": "Se requiere que ingrese una contraseña.",
"minlength": "Se requiere que su contraseña tenga por lo menos 4 caracteres", "minlength": "Se requiere que su contraseña tenga por lo menos 8 caracteres",
"maxlength": "Su contraseña no puede tener más de 50 caracteres", "maxlength": "Su contraseña no puede tener más de 50 caracteres",
"strength": "Seguridad de la contraseña:" "strength": "Seguridad de la contraseña:"
}, },
"confirmpassword": { "confirmpassword": {
"required": "Se requiere que confirme la contraseña.", "required": "Se requiere que confirme la contraseña.",
"minlength": "Se requiere que su contraseña de confirmación tenga por lo menos 4 caracteres", "minlength": "Se requiere que su contraseña de confirmación tenga por lo menos 8 caracteres",
"maxlength": "Su contraseña de confirmación no puede tener más de 50 caracteres" "maxlength": "Su contraseña de confirmación no puede tener más de 50 caracteres"
}, },
"email": { "email": {

View File

@ -9,7 +9,7 @@
}, },
"messages": { "messages": {
"error": { "error": {
"authentication": "<strong>¡El inicio de sesión ha fallado!</strong> Por favor, revise las credenciales e intente de nuevo." "authentication": "Revise las credenciales e intente de nuevo "
} }
}, },
"password": { "password": {

View File

@ -26,7 +26,7 @@
"precio": "Precio", "precio": "Precio",
"pPreguntaCerrada": "P Pregunta Cerrada", "pPreguntaCerrada": "P Pregunta Cerrada",
"pPreguntaAbierta": "P Pregunta Abierta", "pPreguntaAbierta": "P Pregunta Abierta",
"categoria": "Categoria", "categoria": "Categoría",
"usuarioExtra": "Usuario Extra" "usuarioExtra": "Usuario Extra"
} }
} }

View File

@ -2,8 +2,8 @@
"dataSurveyApp": { "dataSurveyApp": {
"PreguntaCerradaTipo": { "PreguntaCerradaTipo": {
"null": "", "null": "",
"SINGLE": "SINGLE", "SINGLE": "Única",
"MULTIPLE": "MULTIPLE" "MULTIPLE": "Múltiple"
} }
} }
} }

View File

@ -2,7 +2,7 @@
"register": { "register": {
"title": "Registro", "title": "Registro",
"form": { "form": {
"button": "Crear la cuenta" "button": "Guardar"
}, },
"messages": { "messages": {
"validate": { "validate": {
@ -17,7 +17,7 @@
"adminsuccess": "<strong>¡Registro guardado!</strong> Por favor, revise el correo electrónico para confirmar.", "adminsuccess": "<strong>¡Registro guardado!</strong> Por favor, revise el correo electrónico para confirmar.",
"error": { "error": {
"fail": "<strong>¡El registro ha fallado!</strong> Por favor, inténtelo de nuevo más tarde.", "fail": "<strong>¡El registro ha fallado!</strong> Por favor, inténtelo de nuevo más tarde.",
"userexists": "<strong>¡El nombre de usuario ya está registrado!</strong> Por favor, escoja otro usuario.", "userexists": "<strong>¡El correo electrónico ya está en uso!</strong> Por favor, escoja otro correo.",
"emailexists": "<strong>¡El correo electrónico ya está en uso!</strong> Por favor, escoja otro email." "emailexists": "<strong>¡El correo electrónico ya está en uso!</strong> Por favor, escoja otro email."
} }
} }

View File

@ -2,8 +2,8 @@
"dataSurveyApp": { "dataSurveyApp": {
"RolColaborador": { "RolColaborador": {
"null": "", "null": "",
"READ": "READ", "READ": "Lector",
"WRITE": "WRITE" "WRITE": "Escritor"
} }
} }
} }

View File

@ -2,27 +2,29 @@
"dataSurveyApp": { "dataSurveyApp": {
"usuarioExtra": { "usuarioExtra": {
"home": { "home": {
"title": "Usuario Extras", "title": "Usuarios",
"refreshListLabel": "Refrescar lista", "refreshListLabel": "Refrescar lista",
"createLabel": "Crear nuevo Usuario Extra", "createLabel": "Crear nuevo administrador",
"createOrEditLabel": "Crear o editar Usuario Extra", "createOrEditLabel": "Crear o editar usuario",
"notFound": "Ningún Usuario Extras encontrado" "notFound": "Ningún usuario encontrado"
}, },
"created": "Un nuevo Usuario Extra ha sido creado con el identificador {{ param }}", "created": "Un nuevo usuario ha sido creado",
"updated": "Un Usuario Extra ha sido actualizado con el identificador {{ param }}", "updated": "El usuario con el identificador {{ param }} ha sido actualizado",
"deleted": "Un Usuario Extra ha sido eliminado con el identificador {{ param }}", "deleted": "El usuario con el identificador {{ param }} ha sido eliminado",
"delete": { "delete": {
"question": "¿Seguro que quiere eliminar Usuario Extra {{ id }}?" "question": "¿Seguro que quiere eliminar el usuario {{ id }}?"
}, },
"detail": { "detail": {
"title": "Usuario Extra" "title": "Usuario"
}, },
"id": "ID", "id": "ID",
"rol": "Rol",
"nombre": "Nombre", "nombre": "Nombre",
"iconoPerfil": "Icono Perfil", "iconoPerfil": "Icono",
"fechaNacimiento": "Fecha Nacimiento", "fechaNacimiento": "Fecha de Nacimiento",
"estado": "Estado", "estado": "Estado",
"user": "User", "user": "Usuario",
"correo": "Correo electrónico",
"encuesta": "Encuesta", "encuesta": "Encuesta",
"usuarioEncuesta": "Usuario Encuesta", "usuarioEncuesta": "Usuario Encuesta",
"plantilla": "Plantilla" "plantilla": "Plantilla"