Add update survey

This commit is contained in:
Pablo Bonilla 2021-07-29 02:10:39 -06:00
parent 340bfbb67f
commit 300f20affd
No known key found for this signature in database
GPG Key ID: 46877262B8DE47E2
5 changed files with 75 additions and 14 deletions

View File

@ -136,6 +136,31 @@ public class EncuestaResource {
.body(result);
}
@PutMapping("/encuestas/update/{id}")
public ResponseEntity<Encuesta> updateEncuestaReal(
@PathVariable(value = "id", required = false) final Long id,
@Valid @RequestBody Encuesta encuesta
) throws URISyntaxException {
log.debug("REST request to update Encuesta : {}, {}", id, encuesta);
if (encuesta.getId() == null) {
throw new BadRequestAlertException("Invalid id", ENTITY_NAME, "idnull");
}
if (!Objects.equals(id, encuesta.getId())) {
throw new BadRequestAlertException("Invalid ID", ENTITY_NAME, "idinvalid");
}
if (!encuestaRepository.existsById(id)) {
throw new BadRequestAlertException("Entity not found", ENTITY_NAME, "idnotfound");
}
Encuesta result = encuestaService.save(encuesta);
return ResponseEntity
.ok()
.headers(HeaderUtil.createEntityUpdateAlert(applicationName, true, ENTITY_NAME, encuesta.getId().toString()))
.body(result);
}
@PutMapping("/encuestas/publish/{id}")
public ResponseEntity<Encuesta> publishEncuesta(
@PathVariable(value = "id", required = false) final Long id,

View File

@ -33,6 +33,13 @@ export class EncuestaService {
.pipe(map((res: EntityResponseType) => this.convertDateFromServer(res)));
}
updateSurvey(encuesta: IEncuesta): Observable<EntityResponseType> {
const copy = this.convertDateFromClient(encuesta);
return this.http
.put<IEncuesta>(`${this.resourceUrl}/update/${getEncuestaIdentifier(encuesta) as number}`, copy, { observe: 'response' })
.pipe(map((res: EntityResponseType) => this.convertDateFromServer(res)));
}
partialUpdate(encuesta: IEncuesta): Observable<EntityResponseType> {
const copy = this.convertDateFromClient(encuesta);
return this.http

View File

@ -1,7 +1,7 @@
<div>
<h2 id="page-heading" data-cy="EPreguntaCerradaHeading">
<div class="d-flex align-items-center">
<p class="ds-title">{{ encuesta!.nombre }}</p>
<p class="ds-title ds-title--interactive" contenteditable="true" (blur)="updateSurveyName($event)">{{ encuesta!.nombre }}</p>
&nbsp;&nbsp;<fa-icon
class="ds-info--icon"
[icon]="faQuestion"

View File

@ -160,7 +160,7 @@ export class EncuestaUpdateComponent implements OnInit, AfterViewChecked {
}
ngAfterViewChecked(): void {
this.initListeners();
// this.initListeners();
}
trackId(index: number, item: IEPreguntaCerrada): number {
@ -178,18 +178,18 @@ export class EncuestaUpdateComponent implements OnInit, AfterViewChecked {
});
}
initListeners(): void {
const checkboxes = document.getElementsByClassName('ds-survey--checkbox');
for (let i = 0; i < checkboxes.length; i++) {
checkboxes[i].addEventListener('click', e => {
if ((e.target as HTMLInputElement).checked) {
(e.target as HTMLElement).offsetParent!.classList.add('ds-survey--closed-option--active');
} else {
(e.target as HTMLElement).offsetParent!.classList.remove('ds-survey--closed-option--active');
}
});
}
}
// initListeners(): void {
// const checkboxes = document.getElementsByClassName('ds-survey--checkbox');
// for (let i = 0; i < checkboxes.length; i++) {
// checkboxes[i].addEventListener('click', e => {
// if ((e.target as HTMLInputElement).checked) {
// (e.target as HTMLElement).offsetParent!.classList.add('ds-survey--closed-option--active');
// } else {
// (e.target as HTMLElement).offsetParent!.classList.remove('ds-survey--closed-option--active');
// }
// });
// }
// }
previousState(): void {
window.history.back();
@ -416,6 +416,21 @@ export class EncuestaUpdateComponent implements OnInit, AfterViewChecked {
this.isSavingQuestion = false;
}
updateSurveyName(event: any) {
const updatedSurveyName = event.target.innerText;
if (updatedSurveyName !== this.encuesta?.nombre) {
const survey = { ...this.encuesta };
survey.nombre = updatedSurveyName;
survey.usuarioExtra!.user = null;
console.log(survey);
this.encuestaService.updateSurvey(survey).subscribe(res => {
console.log('UPDATED');
console.log(res);
});
}
}
// previousState(): void {
// window.history.back();
// }

View File

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