Add edit question name

This commit is contained in:
Pablo Bonilla 2021-07-30 01:34:25 -06:00
parent 2a77c017fa
commit fb1a399694
No known key found for this signature in database
GPG Key ID: 46877262B8DE47E2
4 changed files with 64 additions and 19 deletions

View File

@ -533,7 +533,6 @@ export class EncuestaComponent implements OnInit, AfterViewInit {
survey.categoria = this.surveyEditForm.get(['categoria'])!.value; survey.categoria = this.surveyEditForm.get(['categoria'])!.value;
// Prevent user update by setting to null // Prevent user update by setting to null
survey.usuarioExtra!.user = null; survey.usuarioExtra!.user = null;
console.log(survey);
this.encuestaService.updateSurvey(survey).subscribe(res => { this.encuestaService.updateSurvey(survey).subscribe(res => {
this.loadAll(); this.loadAll();

View File

@ -1,7 +1,7 @@
<div> <div>
<h2 id="page-heading" data-cy="EPreguntaCerradaHeading"> <h2 id="page-heading" data-cy="EPreguntaCerradaHeading">
<div class="d-flex align-items-center"> <div class="d-flex align-items-center">
<p class="ds-title ds-title--interactive" contenteditable="true" spellcheck="false" (blur)="updateSurveyName($event)"> <p class="ds-title ds-contenteditable" contenteditable="true" spellcheck="false" (blur)="updateSurveyName($event)">
{{ encuesta!.nombre }} {{ encuesta!.nombre }}
</p> </p>
&nbsp;&nbsp;<fa-icon &nbsp;&nbsp;<fa-icon
@ -87,7 +87,18 @@
class="ds-survey--question" class="ds-survey--question"
> >
<div class="ds-survey--titulo"> <div class="ds-survey--titulo">
<span class="ds-survey--titulo--name">{{ i + 1 }}. {{ ePregunta.nombre }}</span> <span class="ds-survey--titulo--name">
<span>{{ i + 1 }}.</span>&nbsp;
<span
class="ds-contenteditable"
[attr.data-id]="ePregunta.id"
[attr.data-tipo]="ePregunta.tipo"
contenteditable="true"
spellcheck="false"
(blur)="updateQuestionName($event)"
>{{ ePregunta.nombre }}</span
>
</span>
<fa-icon <fa-icon
*ngIf="encuesta!.estado === 'DRAFT'" *ngIf="encuesta!.estado === 'DRAFT'"
class="ds-survey--titulo--icon" class="ds-survey--titulo--icon"

View File

@ -1,4 +1,4 @@
import { IEPreguntaAbierta } from './../../e-pregunta-abierta/e-pregunta-abierta.model'; import { EPreguntaAbierta, IEPreguntaAbierta } from './../../e-pregunta-abierta/e-pregunta-abierta.model';
import { EPreguntaCerrada } from './../../e-pregunta-cerrada/e-pregunta-cerrada.model'; import { EPreguntaCerrada } from './../../e-pregunta-cerrada/e-pregunta-cerrada.model';
import { EPreguntaCerradaOpcion, IEPreguntaCerradaOpcion } from './../../e-pregunta-cerrada-opcion/e-pregunta-cerrada-opcion.model'; import { EPreguntaCerradaOpcion, IEPreguntaCerradaOpcion } from './../../e-pregunta-cerrada-opcion/e-pregunta-cerrada-opcion.model';
import { EPreguntaAbiertaService } from './../../e-pregunta-abierta/service/e-pregunta-abierta.service'; import { EPreguntaAbiertaService } from './../../e-pregunta-abierta/service/e-pregunta-abierta.service';
@ -120,7 +120,6 @@ export class EncuestaUpdateComponent implements OnInit, AfterViewChecked {
(res: any) => { (res: any) => {
this.isLoading = false; this.isLoading = false;
this.ePreguntas = res.body ?? []; this.ePreguntas = res.body ?? [];
console.log(this.ePreguntas);
}, },
() => { () => {
this.isLoading = false; this.isLoading = false;
@ -141,7 +140,6 @@ export class EncuestaUpdateComponent implements OnInit, AfterViewChecked {
(res: any) => { (res: any) => {
this.isLoading = false; this.isLoading = false;
this.usuariosColaboradores = res.body ?? []; this.usuariosColaboradores = res.body ?? [];
console.log(this.usuariosColaboradores);
}, },
() => { () => {
this.isLoading = false; this.isLoading = false;
@ -152,7 +150,6 @@ export class EncuestaUpdateComponent implements OnInit, AfterViewChecked {
async loadAplicationParameters(): Promise<void> { async loadAplicationParameters(): Promise<void> {
const params = await this.parametroAplicacionService.find(1).toPromise(); const params = await this.parametroAplicacionService.find(1).toPromise();
this.parametrosAplicacion = params.body; this.parametrosAplicacion = params.body;
//console.log(this.parametrosAplicacion);
} }
ngOnInit(): void { ngOnInit(): void {
@ -348,7 +345,6 @@ export class EncuestaUpdateComponent implements OnInit, AfterViewChecked {
createQuestion(): void { createQuestion(): void {
const surveyId = this.encuesta?.id; const surveyId = this.encuesta?.id;
console.log(surveyId);
} }
protected createFromFormClosedQuestion(): IEPreguntaCerrada { protected createFromFormClosedQuestion(): IEPreguntaCerrada {
@ -444,6 +440,45 @@ export class EncuestaUpdateComponent implements OnInit, AfterViewChecked {
} }
} }
updateQuestionName(event: any): void {
const questionType = event.target.dataset.tipo;
const questionId = event.target.dataset.id;
const questionName = event.target.innerText;
if (questionType) {
// Closed question
this.ePreguntaCerradaService.find(questionId).subscribe(res => {
const ePreguntaCerrada: EPreguntaCerrada | null = res.body ?? null;
const updatedEPreguntaCerrada = { ...ePreguntaCerrada };
if (questionName !== ePreguntaCerrada?.nombre && ePreguntaCerrada !== null) {
updatedEPreguntaCerrada.nombre = questionName;
this.ePreguntaCerradaService.update(updatedEPreguntaCerrada).subscribe(updatedQuestion => {
console.log(updatedQuestion);
});
}
});
} else {
// Open question
// Closed question
this.ePreguntaAbiertaService.find(questionId).subscribe(res => {
const ePreguntaAbierta: EPreguntaAbierta | null = res.body ?? null;
const updatedEPreguntaAbierta = { ...ePreguntaAbierta };
if (questionName !== ePreguntaAbierta?.nombre && ePreguntaAbierta !== null) {
updatedEPreguntaAbierta.nombre = questionName;
this.ePreguntaAbiertaService.update(updatedEPreguntaAbierta).subscribe(updatedQuestion => {
console.log(updatedQuestion);
});
}
});
}
// const questionId = event.target.dataset.id;
// const survey = { ...this.encuesta };
// survey.nombre = updatedQuestionName;
// // Prevent user update by setting to null
// survey.usuarioExtra!.user = null;
// this.encuestaService.updateSurvey(survey).subscribe(res => {});
}
// previousState(): void { // previousState(): void {
// window.history.back(); // window.history.back();
// } // }

View File

@ -9,20 +9,20 @@
letter-spacing: 0.025rem; letter-spacing: 0.025rem;
text-transform: uppercase; text-transform: uppercase;
font-size: 1.2rem; font-size: 1.2rem;
}
&--interactive { .ds-contenteditable {
border: 2.25px solid transparent; border: 2.25px solid transparent;
border-radius: 3px; border-radius: 3px;
outline: 0; outline: 0;
text-transform: none; text-transform: none;
&:hover { &:hover {
border: 2.25px solid #e5e5e5; border: 2.25px solid #e5e5e5;
} }
&:focus { &:focus {
border: 2.25px solid #2962ff; border: 2.25px solid #2962ff;
}
} }
} }