funky-framadate-front/src/app/features/administration/form/advanced-config/advanced-config.component.html

324 lines
10 KiB
HTML

<form [formGroup]="form" class="form-advanced-config">
<div class="rounded-block max_count_of_answers">
<h2 class="title is-3">
{{ 'advanced.limit_title' | translate }}
</h2>
<div *ngIf="form.value.hasMaxCountOfAnswers">
<label for="maxCountOfAnswers">
{{ 'advanced.limit_label' | translate }}
</label>
<input
#maxCountOfAnswers
id="maxCountOfAnswers"
type="number"
formControlName="maxCountOfAnswers"
required
/>
</div>
</div>
<div class="rounded-block">
<h2 class="title is-3">
{{ 'advanced.custom_link' | translate }}
</h2>
<label for="custom_url">
{{ 'advanced.custom_label' | translate }}
</label>
<p class="description small-text">
{{ 'advanced.custom_desc' | translate }}
</p>
<div class="domain-custom-box">
<div class="domain">{{ domain_url }}</div>
<input class="inline-input" #custom_url id="custom_url" formControlName="custom_url" required />
</div>
<button
*ngIf="form.controls.custom_url.value && display_regen_slug"
aria-label="Clear"
(click)="form.patchValue({ custom_url: pollService.makeSlug(form) })"
>
<i class="fa fa-recycle"></i> régénérer
</button>
</div>
<div class="rounded-block">
<h2 class="title is-3">
{{ 'advanced.password_title' | translate }}
</h2>
<div class="password-box">
<label for="password_first">
{{ 'advanced.password_label' | translate }}
</label>
<input
id="password_first"
[type]="displayClearPassword ? 'text' : 'password'"
formControlName="password"
required
/>
<button
class="button"
*ngIf="display_password_clear_button"
[ngClass]="{ 'is-primary': displayClearPassword, 'is-info': !displayClearPassword }"
(click)="displayClearPassword = !displayClearPassword"
>
voir
<i class="fa fa-eye" *ngIf="!displayClearPassword"></i>
<i class="fa fa-eye-slash" *ngIf="displayClearPassword"></i>
</button>
<label for="password_repeat">
{{ 'advanced.password_label_repeat' | translate }}
</label>
<input
#password
id="password_repeat"
[type]="displayClearPassword ? 'text' : 'password'"
formControlName="password_repeat"
required
/>
<button
class="button"
*ngIf="display_password_clear_button"
[ngClass]="{ 'is-primary': displayClearPassword, 'is-info': !displayClearPassword }"
(click)="displayClearPassword = !displayClearPassword"
>
voir
<i class="fa fa-eye" *ngIf="!displayClearPassword"></i>
<i class="fa fa-eye-slash" *ngIf="displayClearPassword"></i>
</button>
<div
class="pass-validation"
*ngIf="form.value.password.length && form.value.password == form.value.password_repeat"
>
<p class="pass-validation-text">
<img class="icon" aria-hidden="true" src="assets/icons/check-grey-round.svg" />
{{ 'advanced.password_validation_ok' | translate }}
</p>
</div>
<div class="visibility_password_results">
<label for="areResultsPublic" class="aside-label" id="label_areResultsPublic">
<input type="checkbox" formControlName="areResultsPublic" id="areResultsPublic" />
<span class="label-text">
{{ 'advanced.password_display_without' | translate }}
</span>
</label>
</div>
</div>
</div>
<div class="rounded-block permissions-modification">
<h2 class="title is-3">
{{ 'advanced.allowances_title' | translate }}
</h2>
<div class="choice">
<label for="self_can_change_answers" class="aside-label">
<input type="radio" formControlName="whoCanChangeAnswers" value="self" id="self_can_change_answers" />
<span class="label-text">
{{ 'advanced.allowances_own' | translate }}
</span>
</label>
</div>
<div class="choice">
<label for="everybody_can_change_answers" class="aside-label">
<input
type="radio"
formControlName="whoCanChangeAnswers"
value="everybody"
id="everybody_can_change_answers"
/>
<span class="label-text">
{{ 'advanced.allowances_all' | translate }}
</span>
</label>
</div>
<div class="choice">
<label for="none_can_change_answers" class="aside-label">
<input type="radio" formControlName="whoCanChangeAnswers" value="none" id="none_can_change_answers" />
<span class="label-text">
{{ 'advanced.allowances_none' | translate }}
</span>
</label>
</div>
<hr />
<div class="choice">
<label for="creator_can_change_answers" class="aside-label" id="label_creator_can_change_answers">
<input
type="radio"
formControlName="whoCanChangeAnswers"
value="creator"
id="creator_can_change_answers"
/>
<span class="label-text">
{{ 'advanced.allowances_creator' | translate }}
</span>
</label>
</div>
</div>
<div class="rounded-block notifications">
<h2 class="title is-3">
{{ 'advanced.notifications_title' | translate }}
</h2>
<p>
{{ 'advanced.notifications_description' | translate }}
</p>
<div class="choice">
<label for="areResultsPublic" class="notifications-description aside-label">
<input
type="checkbox"
formControlName="isOwnerNotifiedByEmailOnNewComment"
id="isOwnerNotifiedByEmailOnNewComment"
/>
<span class="label-text">
{{ 'advanced.notifications_vote' | translate }}
</span>
</label>
</div>
<div class="choice">
<label for="isOwnerNotifiedByEmailOnNewVote" class="aside-label areResultsPublic">
<input
type="checkbox"
formControlName="isOwnerNotifiedByEmailOnNewVote"
id="isOwnerNotifiedByEmailOnNewVote"
/>
<span class="label-text">
{{ 'advanced.notifications_comment' | translate }}
</span>
</label>
</div>
</div>
<!-- hidden configs, work in progress-->
<fieldset class="work-in-progress" *ngIf="environment.display_wip">
<div class="rounded-block archive_config">
<div appearance="outline" class="is-not-flex">
<mat-label
>Nombre de jours avant expiration de la possibilité de voter, après le sondage reste consultable
</mat-label>
<input
#expiresDaysDelay
id="expiresDaysDelay"
type="number"
formControlName="expiresDaysDelay"
required
/>
</div>
<div class="rounded-box"></div>
<div class="rounded-box">
<h2 class="title is-3">
{{ 'advanced.password_title' | translate }}
</h2>
<mat-checkbox class="is-not-flex" formControlName="isProtectedByPassword">
{{ 'advanced.password_label' | translate }}
</mat-checkbox>
</div>
<h2 class="title is-3">
<i class="fa fa-envelope-open"></i>
Notifications
</h2>
<mat-checkbox class="is-not-flex" formControlName="isOwnerNotifiedByEmailOnNewVote">
Vous recevrez un mail à chaque nouvelle participation
</mat-checkbox>
<mat-checkbox class="is-not-flex" formControlName="isOwnerNotifiedByEmailOnNewComment">
Vous recevrez un mail à chaque nouveau commentaire
</mat-checkbox>
<div class="proposed-answers">
<h2 class="title is-3">
<i class="fa fa-check-square"></i>
Réponses proposées
</h2>
<mat-checkbox class="is-not-flex" formControlName="isYesAnswerAvailable">
La réponse « oui » sera disponible
<img class="image is-24x24 pull-right" src="assets/img/icon_voter_YES.svg" />
</mat-checkbox>
<mat-checkbox class="is-not-flex" formControlName="isMaybeAnswerAvailable">
La réponse « peut-être » sera disponible
<img class="image is-24x24 pull-right" src="assets/img/icon_voter_MAYBE.svg" />
</mat-checkbox>
<mat-checkbox class="is-not-flex" formControlName="isNoAnswerAvailable">
La réponse « non » sera disponible
<img class="image is-24x24 pull-right" src="assets/img/icon_voter_NO.svg" />
</mat-checkbox>
</div>
<h2 class="title is-3">
<i class="fa fa-user-secret"></i>
Restrictions visiteurs
</h2>
<mat-checkbox class="is-not-flex" formControlName="allowComments">
Autoriser les commentaires
</mat-checkbox>
<mat-checkbox class="is-not-flex" formControlName="hideResults">
Cacher les résultats au public
</mat-checkbox>
<mat-checkbox class="is-not-flex" formControlName="hasMaxCountOfAnswers">
Nombre de réponses limitées à ce nombre.
</mat-checkbox>
<p>
Utile pour réserver des places à un évènement.
</p>
</div>
<h2 class="title is-3">
<i class="fa fa-wikidata"></i>
Fonctionnalités pas encore disponibles:
</h2>
<div>
<mat-checkbox class="is-not-flex" formControlName="useVoterUniqueLink">
Lien unique de vote par email
</mat-checkbox>
<p>
lister les email des participants et leur fournir un lien unique pour voter à chacun, au lieu d'un lien
avec une clé permettant de voter pour n'importe qui ayant le lien. Nécessite: évolution de la BDD et de
l'API
</p>
<textarea
name="voterEmailList"
id="voterEmailList"
cols="30"
rows="10"
formControlName="voterEmailList"
></textarea>
</div>
<mat-checkbox class="is-not-flex" formControlName="allowNewDateTime">
Proposer un créneau
</mat-checkbox>
<p>
Permettre au public de proposer un créneau de vote supplémentaire
</p>
<mat-checkbox class="is-not-flex" formControlName="isZeroKnoledge">
Zéro knowledge
</mat-checkbox>
<p>
Les informations du sondage seront chiffrées en base de données
</p>
</fieldset>
<div class="rounded-block propose_expire_input" *ngIf="environment.propose_expire_input">
<h2 class="title is-3">
Saisissez la date de fin de votre sondage
</h2>
<p>
Par défaut votre sondage prendra fin {{ environment.expiresDaysDelay }} jours après le dernier jour
sélectionné dans vos propositions
</p>
<div class="date-expiracy" *ngIf="environment.display_date_end_of_poll">
<div class="columns">
<div class="column">
<label for="expiracy">Date</label>
</div>
<div class="column">
<span class="date-helper">JJ/MM/AAAA</span>
</div>
</div>
<div class="columns">
<div class="column">
<input formControlName="expiracy_date" type="text" id="expiracy" />
</div>
<div class="column is-narrow">
<img class="icon" src="assets/icons/calendar.svg" alt="icone calendrier" />
</div>
</div>
</div>
</div>
<app-errors-list [form]="form"></app-errors-list>
</form>