show expiracy day after creation

This commit is contained in:
Tykayn 2021-05-18 22:51:06 +02:00 committed by tykayn
parent 09a507109a
commit 5d02fc3167
9 changed files with 111 additions and 20 deletions

View File

@ -0,0 +1,84 @@
export default {
allow_comments: true,
allowComments: true,
allowed_answers: [],
areResultsPublic: true,
choices: [],
choices_grouped: [],
comments: [],
creation_date: '2021-05-18T20:40:51.385Z',
custom_url: 'sdfsfdsfg',
dateChoices: [
{
date_object: '2021-05-19T20:40:18.500Z',
literal: '2021-05-19',
timeSlices: {},
},
{
date_object: '2021-05-20T20:40:18.500Z',
literal: '2021-05-20',
timeSlices: {},
},
{
date_object: '2021-05-21T20:40:18.500Z',
literal: '2021-05-21',
timeSlices: {},
},
{
date_object: '2021-05-22T20:40:18.500Z',
literal: '2021-05-22',
timeSlices: {},
},
{
date_object: '2021-05-18T20:40:33.557Z',
literal: '',
timeSlices: [],
},
{
date_object: '2021-05-18T20:40:33.557Z',
literal: '',
timeSlices: [],
},
{
date_object: '2021-05-18T20:40:33.557Z',
literal: '',
timeSlices: [],
},
],
default_expiracy_days_from_now: 60,
description: 'RSVP',
has_several_hours: false,
hasSeveralHours: false,
id: 0,
is_zero_knowledge: false,
isMaybeAnswerAvailable: false,
isOwnerNotifiedByEmailOnNewComment: false,
isOwnerNotifiedByEmailOnNewVote: false,
kind: 'date',
max_count_of_answers: true,
maxCountOfAnswers: 150,
modification_policy: 'everybody',
owner: {
email: 'example@example.com',
polls: [],
pseudo: 'pseudo',
},
password: '',
stacks: [],
timeSlices: [
{
literal: 'matin',
},
{
literal: 'midi',
},
{
literal: 'après-midi',
},
{
literal: 'soir',
},
],
title: 'sdfsfdsfg',
votes: [],
};

View File

@ -1,6 +1,6 @@
export interface DateChoice { export interface DateChoice {
literal: string; literal: string;
timeList: TimeSlices[]; timeSlices: TimeSlices[];
date_object: Date; date_object: Date;
} }
@ -47,17 +47,17 @@ export const defaultDates: DateChoice[] = [
{ {
literal: `${currentYear}-${currentMonth}-${currentDay}`, literal: `${currentYear}-${currentMonth}-${currentDay}`,
date_object: new Date(), date_object: new Date(),
timeList: defaultTimeOfDay, timeSlices: defaultTimeOfDay,
}, },
{ {
literal: `${currentYear}-${currentMonth}-${currentDay + 1}`, literal: `${currentYear}-${currentMonth}-${currentDay + 1}`,
date_object: new Date(), date_object: new Date(),
timeList: defaultTimeOfDay, timeSlices: defaultTimeOfDay,
}, },
{ {
literal: `${currentYear}-${currentMonth}-${currentDay + 2}`, literal: `${currentYear}-${currentMonth}-${currentDay + 2}`,
date_object: new Date(), date_object: new Date(),
timeList: defaultTimeOfDay, timeSlices: defaultTimeOfDay,
}, },
]; ];
@ -65,17 +65,17 @@ export const otherDefaultDates: DateChoice[] = [
{ {
literal: `${currentYear}-${currentMonth}-${currentDay}`, literal: `${currentYear}-${currentMonth}-${currentDay}`,
date_object: new Date(), date_object: new Date(),
timeList: defaultTimeOfDay, timeSlices: defaultTimeOfDay,
}, },
{ {
literal: `${currentYear}-${currentMonth}-${currentDay + 1}`, literal: `${currentYear}-${currentMonth}-${currentDay + 1}`,
date_object: new Date(currentYear, currentMonth, currentDay + 1), date_object: new Date(currentYear, currentMonth, currentDay + 1),
timeList: otherTimeOfDay, timeSlices: otherTimeOfDay,
}, },
{ {
literal: `${currentYear}-${currentMonth}-${currentDay + 2}`, literal: `${currentYear}-${currentMonth}-${currentDay + 2}`,
date_object: new Date(), date_object: new Date(),
timeList: moreTimeOfDay, timeSlices: moreTimeOfDay,
}, },
]; ];
export const defaultAnswers: PollAnswer[] = [ export const defaultAnswers: PollAnswer[] = [

View File

@ -104,22 +104,22 @@ export class DateUtilitiesService {
return [ return [
{ {
literal: this.formateDateToInputStringNg(ladate), literal: this.formateDateToInputStringNg(ladate),
timeList: Object.create(defaultTimeOfDay), timeSlices: Object.create(defaultTimeOfDay),
date_object: ladate, date_object: ladate,
}, },
{ {
literal: this.formateDateToInputStringNg(ladate2), literal: this.formateDateToInputStringNg(ladate2),
timeList: Object.create(defaultTimeOfDay), timeSlices: Object.create(defaultTimeOfDay),
date_object: ladate2, date_object: ladate2,
}, },
{ {
literal: this.formateDateToInputStringNg(ladate3), literal: this.formateDateToInputStringNg(ladate3),
timeList: Object.create(defaultTimeOfDay), timeSlices: Object.create(defaultTimeOfDay),
date_object: ladate3, date_object: ladate3,
}, },
{ {
literal: this.formateDateToInputStringNg(ladate4), literal: this.formateDateToInputStringNg(ladate4),
timeList: Object.create(defaultTimeOfDay), timeSlices: Object.create(defaultTimeOfDay),
date_object: ladate4, date_object: ladate4,
}, },
]; ];

View File

@ -14,6 +14,7 @@ import { HttpClient } from '@angular/common/http';
import { environment } from '../../../environments/environment'; import { environment } from '../../../environments/environment';
import { StorageService } from './storage.service'; import { StorageService } from './storage.service';
import { Title } from '@angular/platform-browser'; import { Title } from '@angular/platform-browser';
import { DateUtilitiesService } from './date.utilities.service';
@Injectable({ @Injectable({
providedIn: 'root', providedIn: 'root',
@ -29,6 +30,7 @@ export class PollService implements Resolve<Poll> {
private storageService: StorageService, private storageService: StorageService,
private userService: UserService, private userService: UserService,
private uuidService: UuidService, private uuidService: UuidService,
private dateUtils: DateUtilitiesService,
private titleService: Title, private titleService: Title,
private toastService: ToastService private toastService: ToastService
) { ) {

View File

@ -61,14 +61,14 @@ export class DateSelectComponent implements OnInit {
removeAllTimes() { removeAllTimes() {
this.timeSlices = []; this.timeSlices = [];
this.dateList.map((elem) => (elem.timeList = [])); this.dateList.map((elem) => (elem.timeSlices = []));
this.toastService.display('périodes horaires vidées'); this.toastService.display('périodes horaires vidées');
} }
resetTimes(slices = Object.create(defaultTimeOfDay)) { resetTimes(slices = Object.create(defaultTimeOfDay)) {
this.timeSlices = slices; this.timeSlices = slices;
this.dateList.map((elem) => (elem.timeList = Object.create(slices))); this.dateList.map((elem) => (elem.timeSlices = Object.create(slices)));
this.toastService.display('périodes horaires réinitialisées'); this.toastService.display('périodes horaires réinitialisées');
} }
} }

View File

@ -64,10 +64,10 @@ export class DayListComponent {
* @param id number * @param id number
*/ */
addTimeToDate(choice: DateChoice, id: number) { addTimeToDate(choice: DateChoice, id: number) {
if (!choice.timeList) { if (!choice.timeSlices) {
choice.timeList = []; choice.timeSlices = [];
} }
choice.timeList.push({ choice.timeSlices.push({
literal: '', literal: '',
}); });
const selector = '[ng-reflect-choice_label="dateTime_' + id + '_ dateList_' + (this.timeList.length - 1) + '"]'; const selector = '[ng-reflect-choice_label="dateTime_' + id + '_ dateList_' + (this.timeList.length - 1) + '"]';
@ -126,7 +126,7 @@ export class DayListComponent {
addChoice(optionalLabel = ''): void { addChoice(optionalLabel = ''): void {
this.storageService.dateChoices.push({ this.storageService.dateChoices.push({
literal: '', literal: '',
timeList: [], timeSlices: [],
date_object: new Date(), date_object: new Date(),
}); });

View File

@ -43,7 +43,7 @@
<br /> <br />
<p class="note"> <p class="note">
Note : Le sondage sera supprimé {{ poll.default_expiracy_days_from_now }} jours après la date de sa Note : Le sondage sera supprimé {{ poll.default_expiracy_days_from_now }} jours après la date de sa
dernière modification. dernière modification. Le {{ getExpiracyDateFromPoll(poll) | date: 'short' }}
</p> </p>
</div> </div>
<div class="public"> <div class="public">

View File

@ -3,6 +3,7 @@ import { PollService } from '../../../core/services/poll.service';
import { Poll } from '../../../core/models/poll.model'; import { Poll } from '../../../core/models/poll.model';
import { environment } from 'src/environments/environment'; import { environment } from 'src/environments/environment';
import { Title } from '@angular/platform-browser'; import { Title } from '@angular/platform-browser';
import { DateUtilitiesService } from '../../../core/services/date.utilities.service';
@Component({ @Component({
selector: 'app-success', selector: 'app-success',
@ -14,7 +15,7 @@ export class SuccessComponent {
mailToRecieve: string; mailToRecieve: string;
window: any = window; window: any = window;
environment = environment; environment = environment;
constructor(public pollService: PollService, private titleService: Title) { constructor(public pollService: PollService, private dateUtils: DateUtilitiesService, private titleService: Title) {
this.titleService.setTitle(environment.appTitle + ' - 🎉 succès de création de sondage -'); this.titleService.setTitle(environment.appTitle + ' - 🎉 succès de création de sondage -');
this.pollService.poll.subscribe((newpoll: Poll) => { this.pollService.poll.subscribe((newpoll: Poll) => {
@ -25,4 +26,8 @@ export class SuccessComponent {
sendToEmail() { sendToEmail() {
alert('todo'); alert('todo');
} }
getExpiracyDateFromPoll(poll: Poll): Date {
return this.dateUtils.addDaysToDate(poll.default_expiracy_days_from_now, new Date());
}
} }

View File

@ -21,7 +21,7 @@ export const environment = {
frontDomain: 'http://tktest.lan', frontDomain: 'http://tktest.lan',
production: false, production: false,
display_routes: false, display_routes: false,
autofill: false, autofill: true,
showDemoWarning: false, showDemoWarning: false,
autoSendNewPoll: false, autoSendNewPoll: false,
interval_days_default: 7, interval_days_default: 7,