group display of days

This commit is contained in:
Tykayn 2021-04-30 15:42:50 +02:00 committed by tykayn
parent 975997b767
commit 86c0ff815f
7 changed files with 88 additions and 48 deletions

View File

@ -51,7 +51,19 @@
Environnement de développement: voici des liens de démonstration issus des fixtures Doctrine de date-poll-api. Environnement de développement: voici des liens de démonstration issus des fixtures Doctrine de date-poll-api.
<div class="padded"> <div class="padded">
<div class=""> <div class="">
<a class="navbar-item" [routerLink]="['/poll/dessin-anime/consultation']" routerLinkActive="is-primary"> <a
class="navbar-item"
[routerLink]="['/poll/le-titre-de-demo-oh-oh/consultation']"
routerLinkActive="is-primary"
>
<em>
le-titre-de-demo-oh-oh
</em> </a
><a
class="navbar-item"
[routerLink]="['/poll/dessin-anime/consultation']"
routerLinkActive="is-primary"
>
<em> <em>
dessin-anime dessin-anime
</em> </em>

View File

@ -47,7 +47,7 @@ export class Poll {
public choices: Choice[] = []; public choices: Choice[] = [];
public choicesDateGrouped: ChoiceGroup[] = []; public choices_grouped: ChoiceGroup[] = [];
public votes = []; public votes = [];

View File

@ -217,24 +217,12 @@ export class PollService implements Resolve<Poll> {
return newpoll; return newpoll;
} }
/**
* regrouper les jours et périodes de temps
* @param choices
*/
public parseDateChoices(choices: Choice[]) { public parseDateChoices(choices: Choice[]) {
const SEPARATOR_DATE_TIME_SLICE = ' >>> '; console.log('choices before', choices);
const parsedChoices = []; return choices;
for (const c of choices) {
const time_list = [];
const choice = { name: c.name };
if (c.name.includes(SEPARATOR_DATE_TIME_SLICE)) {
const date_string = '';
const time_slice = '';
choice.name = time_slice;
}
parsedChoices.push({
date_string: choice,
choices: c,
});
}
console.log('parsedChoices', parsedChoices);
return [];
} }
} }

View File

@ -30,7 +30,9 @@
Pour accéder au sondage et à tous ses paramètres : Pour accéder au sondage et à tous ses paramètres :
<a href="{{ poll.custom_url }}">{{ poll.custom_url }} </a> <a href="{{ poll.custom_url }}">{{ poll.custom_url }} </a>
</p> </p>
<app-copy-text [textToCopy]="poll.custom_url"></app-copy-text> <app-copy-text
[textToCopy]="window.location.href + '/poll/' + poll.custom_url + '/consultation'"
></app-copy-text>
<a href="{{ poll.custom_url }}"> <a href="{{ poll.custom_url }}">
Voir le sondage coté administrateur·ice Voir le sondage coté administrateur·ice
</a> </a>

View File

@ -116,9 +116,9 @@
</button> </button>
</div> </div>
<footer class="card-footer" *ngIf="!isArchived"> <!-- <footer class="card-footer" *ngIf="!isArchived">-->
TODO links <!-- TODO links-->
</footer> <!-- </footer>-->
</div> </div>
</div> </div>
</div> </div>

View File

@ -53,7 +53,7 @@ export class ConsultationComponent implements OnInit, OnDestroy {
this.poll.is_archived = this.isArchived; this.poll.is_archived = this.isArchived;
if (!environment.production) { if (!environment.production) {
this.addVoteStack(); // this.addVoteStack();
} }
} }
}); });

View File

@ -1,27 +1,65 @@
{{ poll.choices.length }} choix {{ poll.choices.length }} choix
<div class="box" *ngFor="let choice of poll.choices"> <div class="date-choices" *ngIf="poll.kind == 'date'">
<div class="columns is-vcentered is-mobile"> <div class="box" *ngFor="let group of poll.choices_grouped">
<div class="column"> <h3 class="title is-3">
<label class="label" *ngIf="poll.kind == 'text'">{{ choice.name }} </label> {{ group.date_string }}
<label class="label" *ngIf="poll.kind == 'date'"> </h3>
{{ choice.name }} : {{ choice.name | date: 'short':'Europe/Paris':'fr_FR' }} <div class="box" *ngFor="let choice of group.choices">
</label> <div class="columns is-vcentered is-mobile">
</div> <div class="column">
<div class="column is-narrow"> <label class="label" *ngIf="poll.kind == 'text'">{{ choice.name }} </label>
<span class="max_score" *ngIf="poll.max_score > 0 && choice.score == poll.max_score"> <label class="label" *ngIf="poll.kind == 'date'">
<i class="fa fa-star fa-2x"></i> {{ choice.name }} : {{ choice.name | date: 'short':'Europe/Paris':'fr_FR' }}
</span> </label>
</div> </div>
<div class="column is-narrow"> <div class="column is-narrow">
<button class="button is-white" (click)="openModal(poll, choice)"> <span class="max_score" *ngIf="poll.max_score > 0 && choice.score == poll.max_score">
<i class="fa fa-info-circle"></i> <i class="fa fa-star fa-2x"></i>
</button> </span>
</div> </div>
<div class="column is-narrow"> <div class="column is-narrow">
<div class="buttons has-addons is-right"> <button class="button is-white" (click)="openModal(poll, choice)">
<app-choice-button [poll]="poll" [choice]="choice" [answerKind]="'YES'"></app-choice-button> <i class="fa fa-info-circle"></i>
<app-choice-button [poll]="poll" [choice]="choice" [answerKind]="'MAYBE'"></app-choice-button> </button>
<app-choice-button [poll]="poll" [choice]="choice" [answerKind]="'NO'"></app-choice-button> </div>
<div class="column is-narrow">
<div class="buttons has-addons is-right">
<!-- TODO limit answers possible with poll allowed_answers-->
<app-choice-button [poll]="poll" [choice]="choice" [answerKind]="'YES'"></app-choice-button>
<app-choice-button [poll]="poll" [choice]="choice" [answerKind]="'MAYBE'"></app-choice-button>
<app-choice-button [poll]="poll" [choice]="choice" [answerKind]="'NO'"></app-choice-button>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="texts" *ngIf="poll.kind == 'text'">
<div class="box" *ngFor="let choice of poll.choices">
<div class="columns is-vcentered is-mobile">
<div class="column">
<label class="label" *ngIf="poll.kind == 'text'">{{ choice.name }} </label>
<label class="label" *ngIf="poll.kind == 'date'">
{{ choice.name }} : {{ choice.name | date: 'short':'Europe/Paris':'fr_FR' }}
</label>
</div>
<div class="column is-narrow">
<span class="max_score" *ngIf="poll.max_score > 0 && choice.score == poll.max_score">
<i class="fa fa-star fa-2x"></i>
</span>
</div>
<div class="column is-narrow">
<button class="button is-white" (click)="openModal(poll, choice)">
<i class="fa fa-info-circle"></i>
</button>
</div>
<div class="column is-narrow">
<div class="buttons has-addons is-right">
<!-- TODO limit answers possible with poll allowed_answers-->
<app-choice-button [poll]="poll" [choice]="choice" [answerKind]="'YES'"></app-choice-button>
<app-choice-button [poll]="poll" [choice]="choice" [answerKind]="'MAYBE'"></app-choice-button>
<app-choice-button [poll]="poll" [choice]="choice" [answerKind]="'NO'"></app-choice-button>
</div>
</div> </div>
</div> </div>
</div> </div>