framadate-responsive/src/app/config/PollConfig.ts

89 lines
3.4 KiB
TypeScript
Raw Normal View History

/**
* une option de date dans les sondages spéciaux
*/
import {environment} from "../../environments/environment";
export interface DateOption {
timeList: any;
2019-08-12 14:40:33 +02:00
literal: string;
}
export const timeOfDay = [{
timeList: [],
literal: 'matin'
},
{timeList: [], literal: 'midi'},
{timeList: [], literal: 'après-midi'},
{timeList: [], literal: 'soirée'}];
2019-11-15 15:19:42 +01:00
export const defaultDates = [
{
2019-11-19 14:23:51 +01:00
literal: `${new Date().getFullYear()}-${new Date().getMonth()}-${new Date().getDate()}`,
2019-11-15 15:19:42 +01:00
timeList: [{literal: 'matin'}, {literal: 'midi'}, {literal: 'soir'}]
},
{
2019-11-19 14:23:51 +01:00
literal: `${new Date().getFullYear()}-${new Date().getMonth()}-${new Date().getDate() + 1}`,
2019-11-15 15:19:42 +01:00
timeList: [{literal: 'matin'}, {literal: 'midi'}, {literal: 'soir'}]
},
{
2019-11-19 14:23:51 +01:00
literal: `${new Date().getFullYear()}-${new Date().getMonth()}-${new Date().getDate() + 2}`,
2019-11-15 15:19:42 +01:00
timeList: [{literal: 'matin'}, {literal: 'midi'}, {literal: 'soir'}]
}
];
export const defaultAnswers = [{
id: 0,
2020-01-16 15:35:11 +01:00
text: 'réponse de démo 1',
2020-01-20 13:38:57 +01:00
url: 'https://mastodon.cipherbliss.com/system/media_attachments/files/001/439/118/original/6fcf149bd902841b.png?1579471574',
},
{
id: 1,
2020-01-16 15:35:11 +01:00
text: 'réponse 2',
2020-01-20 13:38:57 +01:00
url: 'https://mastodon.cipherbliss.com/system/media_attachments/files/001/439/118/original/6fcf149bd902841b.png?1579471574',
},
{
id: 2,
2020-01-16 15:35:11 +01:00
text: 'la réponse D',
2020-01-20 13:38:57 +01:00
url: 'https://mastodon.cipherbliss.com/system/media_attachments/files/001/439/118/original/6fcf149bd902841b.png?1579471574',
}];
2019-11-15 15:19:42 +01:00
/**
2019-08-10 17:41:01 +02:00
* configuration of the poll, add new fields at will
*/
export class PollConfig {
2019-11-23 15:35:27 +01:00
expiracyDateDefaultInDays = 60;
2020-01-16 11:46:31 +01:00
deletionDateAfterLastModification = 180;
step = 0;
stepMax = 3;
2019-11-22 16:46:12 +01:00
pollType = 'classic';// classic or date
2019-11-23 15:46:07 +01:00
title = 'titre';
description = 'ma description';
myName = 'mon pseudo';
2020-01-16 15:35:11 +01:00
myComment = 'wouah trop bien framadate!';
2020-01-20 13:38:57 +01:00
isAdmin: boolean = false;
2020-01-16 11:46:31 +01:00
myEmail: string = "";
2019-11-22 16:46:12 +01:00
// date specific poll, we have the choice to setup different hours (timeList) for all possible dates (dateList), or use the same hours for all dates
allowSeveralHours = 'false';
// access
visibility = 'link_only'; // visible to anyone with the link:
voteChoices = 'only_yes'; // possible answers to a vote choice: only "yes", "yes, maybe, no"
creationDate = new Date();
2019-11-23 15:35:27 +01:00
expirationDate = ''; // expiracy date
2019-12-04 12:45:50 +01:00
pollId = null; // id of the current poll when created. data given by the backend api
selectedPoll = null; // current poll selected with createPoll or getPoll of ConfigService
passwordAccess = 0;
password = '';
customUrl = ''; // custom slug in the url, must be unique
customUrlIsUnique = null; // given by the backend
urlPublic = environment.baseApiHref + '/default-url';
urlAdmin = environment.baseApiHref + '/default-url/admin/d65es45fd45sdf45sd345f312sdf31sgfd345';
2019-11-23 15:35:27 +01:00
canModifyAnswers = 1;// everybody, self, nobody (= just admin)
whoModifiesAnswers = "self";// everybody, self, nobody (= just admin)
whoCanChangeAnswers = 'everybody';// everybody, self, nobody (= just admin)
dateList: DateOption[] = defaultDates; // sets of days as strings, config to set identical time for days in a special days poll
2019-11-15 15:19:42 +01:00
timeList: DateOption[] = timeOfDay; // ranges of time expressed as strings
answers: any = defaultAnswers;
2019-08-10 17:41:01 +02:00
2020-01-15 15:55:15 +01:00
constructor() {
}
}