forked from tykayn/funky-framadate-front
add toggle function to yes on all timeslices of a group choice
This commit is contained in:
parent
406bf71b92
commit
3b8aa9d849
@ -3,6 +3,7 @@ import { Owner } from './owner.model';
|
||||
|
||||
export class ChoiceGroup {
|
||||
date_string: string;
|
||||
subSetToYes = false; // to know if all the choices are set to YES, to toggle them all at once without checking them individually
|
||||
choices: Choice[];
|
||||
}
|
||||
|
||||
|
@ -102,4 +102,14 @@ export class StorageService {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
setAllSubchoicesTo(groupe, newAnswer = 'yes') {
|
||||
groupe.choices.map((choice) => {
|
||||
for (const vote of this.vote_stack.votes) {
|
||||
if (vote.choice_id == choice.id) {
|
||||
vote.value = newAnswer;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -52,6 +52,7 @@ export class ConsultationComponent implements OnInit, OnDestroy {
|
||||
if (newpoll) {
|
||||
this.isArchived = new Date(newpoll.expiracy_date) < new Date();
|
||||
this.poll.is_archived = this.isArchived;
|
||||
this.poll.choices_grouped.map((elem) => (elem.subSetToYes = false));
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -2,13 +2,19 @@
|
||||
<div class="date-choices" *ngIf="poll.kind == 'date'">
|
||||
<div class="box" *ngFor="let group of poll.choices_grouped">
|
||||
<h3 class="title is-3">
|
||||
<button
|
||||
class="icon button padded"
|
||||
(click)="toggleAllOfChoice(group)"
|
||||
[ngClass]="{ 'has-background-primary': group.subSetToYes }"
|
||||
>
|
||||
<i class="fa fa-check-circle-o fa"></i>
|
||||
</button>
|
||||
{{ showAsDate(group.date_string) | date: 'fullDate':'Europe/Paris':'fr_FR' }}
|
||||
</h3>
|
||||
<div class="time-slice-choice" *ngFor="let choice of group.choices">
|
||||
<div class="columns is-vcentered is-mobile">
|
||||
<div class="column">
|
||||
<label class="label">
|
||||
<!-- {{choice.id}} )-->
|
||||
{{ choice.name }}
|
||||
</label>
|
||||
</div>
|
||||
|
@ -16,7 +16,6 @@ import { StorageService } from '../../../core/services/storage.service';
|
||||
export class PollResultsCompactComponent implements OnInit {
|
||||
@Input() public poll: Poll;
|
||||
public answerEnum = Answer;
|
||||
|
||||
constructor(private modalService: ModalService, private storageService: StorageService) {}
|
||||
|
||||
ngOnInit(): void {
|
||||
@ -35,4 +34,19 @@ export class PollResultsCompactComponent implements OnInit {
|
||||
showAsDate(date_string: string) {
|
||||
return new Date(date_string);
|
||||
}
|
||||
|
||||
toggleAllOfChoice(groupe: any) {
|
||||
console.log('groupe', groupe);
|
||||
|
||||
if (!groupe.subSetToYes) {
|
||||
this.storageService.setAllSubchoicesTo(groupe, 'yes');
|
||||
groupe.subSetToYes = true;
|
||||
} else {
|
||||
this.storageService.setAllSubchoicesTo(groupe, '');
|
||||
groupe.subSetToYes = false;
|
||||
}
|
||||
// savoir si on a déjà tout mis en "yes"
|
||||
// si oui, on enlève toutes les réponses
|
||||
// autrement on met tout à "yes"
|
||||
}
|
||||
}
|
||||
|
@ -8,7 +8,7 @@
|
||||
<!-- {{choice.id}}-->
|
||||
<span class="label" *ngIf="poll.kind == 'text'">{{ choice.name }} </span>
|
||||
<span class="label" *ngIf="poll.kind == 'date'">
|
||||
{{ choice.name | date: 'short':'Europe/Paris':'fr_FR' }}
|
||||
{{ make_date(choice.name) | date: 'fullDate':'Europe/Paris':'fr_FR' }}
|
||||
</span>
|
||||
</th>
|
||||
</tr>
|
||||
|
@ -10,6 +10,11 @@
|
||||
background: #ffd7d7;
|
||||
}
|
||||
|
||||
table {
|
||||
overflow: scroll;
|
||||
max-width: 90vw !important;
|
||||
display: block;
|
||||
}
|
||||
table {
|
||||
th,
|
||||
th * {
|
||||
|
@ -1,6 +1,5 @@
|
||||
import { Component, Input, OnInit } from '@angular/core';
|
||||
|
||||
import { Answer } from '../../../core/enums/answer.enum';
|
||||
import { Poll } from '../../../core/models/poll.model';
|
||||
import { PollService } from '../../../core/services/poll.service';
|
||||
|
||||
@ -24,4 +23,10 @@ export class PollResultsDetailedComponent {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
make_date(name: string) {
|
||||
name = name.substr(0, 24);
|
||||
console.log('name.length', name.length, name);
|
||||
return new Date(name);
|
||||
}
|
||||
}
|
||||
|
@ -3,12 +3,12 @@
|
||||
// The list of file replacements can be found in `angular.json`.
|
||||
|
||||
const backendApiUrlsInDev = {
|
||||
local: 'http://tktest.lan/api/v1',
|
||||
remote: 'http://tktest.lan/api/v1',
|
||||
local: 'http://127.0.0.1:8000/api/v1',
|
||||
remote: 'http://127.0.0.1:8000/api/v1',
|
||||
// remote: 'https://framadate-api.cipherbliss.com/api/v1',
|
||||
};
|
||||
const apiV1 = {
|
||||
baseHref: 'http://tktest.lan/api/v1',
|
||||
baseHref: 'http://127.0.0.1:8000/api/v1',
|
||||
// baseHref: 'https://framadate-api.cipherbliss.com/api/v1',
|
||||
api_new_poll: '/poll/',
|
||||
api_get_poll: '/poll/{id}',
|
||||
@ -18,7 +18,7 @@ const apiV1 = {
|
||||
};
|
||||
|
||||
export const environment = {
|
||||
frontDomain: 'http://tktest.lan',
|
||||
frontDomain: 'http://127.0.0.1:8000',
|
||||
production: false,
|
||||
display_routes: false,
|
||||
autofill: true,
|
||||
|
Loading…
Reference in New Issue
Block a user