add to local polls after creation, update poll

This commit is contained in:
Tykayn 2021-05-03 12:57:59 +02:00 committed by tykayn
parent a969b30a03
commit 10177d793b
3 changed files with 34 additions and 13 deletions

View File

@ -109,6 +109,8 @@ export class PollService implements Resolve<Poll> {
* @param poll
*/
public updateCurrentPoll(poll: Poll): void {
console.log('update poll with: ', poll);
this.storageService.setChoicesForVoteStack(poll.choices);
this.toastService.display('sondage bien mis à jour', 'success');

View File

@ -9,6 +9,8 @@ import { DOCUMENT } from '@angular/common';
import { Router } from '@angular/router';
import { environment } from '../../../../environments/environment';
import { PollUtilitiesService } from '../../../core/services/poll.utilities.service';
import { Subscription } from 'rxjs';
import { StorageService } from '../../../core/services/storage.service';
@Component({
selector: 'app-admin-form',
@ -24,13 +26,13 @@ export class FormComponent implements OnInit {
public show_debug_data = false;
public currentStep = 'base';
public steps = ['base', 'choices', 'advanced'];
constructor(
private fb: FormBuilder,
private cd: ChangeDetectorRef,
private pollUtilitiesService: PollUtilitiesService,
private toastService: ToastService,
private pollService: PollService,
private storageService: StorageService,
public apiService: ApiService,
private router: Router,
@Inject(DOCUMENT) private document: any
@ -163,20 +165,32 @@ export class FormComponent implements OnInit {
if (!environment.production) {
this.toastService.display('mode dev : envoi du form sans validation');
this.apiService.createPoll(newpoll).then((resp) => {
console.log('resp', resp);
router.navigate(['success']);
});
this.apiService.createPoll(newpoll).then(
(resp: any) => {
this.pollService.updateCurrentPoll(resp.data.poll);
this.storageService.userPolls.push(resp.data.poll);
this.storageService.vote_stack.owner.polls.push(resp.data.poll);
this.toastService.display('sauvegarde du nouveau sondage réussie');
router.navigate(['success']);
},
(err) => {
this.toastService.display('erreur lors de la sauvegarde');
}
);
} else {
if (this.form.valid) {
console.log('Le sondage est correctement rempli, prêt à enregistrer.');
const newpoll = this.pollService.newPollFromForm(this.form);
this.apiService.createPoll(newpoll).then((resp) => {
console.log('resp', resp);
router.navigate(['poll', this.form.value.custom_url, 'consultation']);
this.toastService.display('sauvegarde du nouveau sondage réussie');
});
this.apiService.createPoll(newpoll).then(
(resp: any) => {
this.pollService.updateCurrentPoll(resp.data.poll);
this.storageService.userPolls.push(resp.data.poll);
this.storageService.vote_stack.owner.polls.push(resp.data.poll);
this.toastService.display('sauvegarde du nouveau sondage réussie');
router.navigate(['success']);
},
(err) => {
this.toastService.display('erreur lors de la sauvegarde');
}
);
} else {
this.toastService.display('invalid form');
}

View File

@ -4,3 +4,8 @@ button {
margin-bottom: 1ch;
margin-right: 1ch;
}
a {
max-width: 20em;
overflow: auto;
text-overflow: ellipsis;
}