File

src/app/config/PollConfig.ts

Description

configuration of the poll, add new fields at will

Index

Properties
Methods

Properties

adminKey
Type : string
Default value : ''
allowSeveralHours
Type : string
Default value : 'true'
answers
Type : PollAnswer[]
Default value : defaultAnswers
canModifyAnswers
Type : boolean
Default value : true
creationDate
Default value : new Date()
currentPoll
customUrl
Type : string
Default value : ''
customUrlIsUnique
Type : null
Default value : null
dateList
Type : any
Default value : otherDefaultDates
deletionDateAfterLastModification
Type : number
Default value : 180
description
Type : string
Default value : 'ma description'
expiracyDateDefaultInDays
Type : number
Default value : 60
expirationDate
Type : string
Default value : ''
isAdmin
Type : boolean
Default value : true
myComment
Type : string
Default value : 'wouah trop bien framadate!'
myEmail
Type : string
Default value : "tktest@tktest.com"
myName
Type : string
Default value : 'mon pseudo'
myPolls
Type : any
Default value : []
myTempVoteStack
Type : number
Default value : 0
myVoteStack
Type : any
owner_modifier_token
Type : string
Default value : ''
password
Type : string
Default value : ''
passwordAccess
Type : number
Default value : 0
pollId
Type : null
Default value : null
pollSlug
Type : null
Default value : null
pollType
Type : string
Default value : 'dates'
step
Type : number
Default value : 0
stepMax
Type : number
Default value : 3
timeList
Type : DateChoice[]
Default value : otherDefaultDates
title
Type : string
Default value : 'titre'
urlAdmin
Default value : environment.baseHref + '/#/admin/d65es45fd45sdf45sd345f312sdf31sgfd345'
urlPublic
Default value : environment.baseHref + '/#/poll/id/4'
urlSlugPublic
Type : null
Default value : null
visibility
Type : string
Default value : 'link_only'
voteChoices
Type : string
Default value : 'only_yes'
voteStackId
Type : null
Default value : null
whoCanChangeAnswers
Type : string
Default value : 'everybody'
whoModifiesAnswers
Type : string
Default value : "everybody"

Methods

resetConfig
resetConfig()
Returns : void
import {environment} from "../../environments/environment";
import {DateChoice, defaultAnswers, otherDefaultDates, PollAnswer} from "./defaultConfigs";

export interface DateOption {
    timeList: any;
    literal: string;
    date_object?: object;
}

const baseConfigValues = {
    pollType: "classic",
    title: "",
    description: "",
    myName: "",
    myEmail: "",
};


/**
 * configuration of the poll, add new fields at will
 */
export class PollConfig {
    expiracyDateDefaultInDays = 60;
    deletionDateAfterLastModification = 180;
    step: number = 0; // step in the progress of creating a poll
    stepMax: number = 3; // step max in the progress of creating a poll
    pollType: string = 'dates';// classic or dates
    title: string = 'titre';
    description: string = 'ma description';
    myName: string = 'mon pseudo';
    myComment: string = 'wouah trop bien framadate!';
    isAdmin: boolean = true;
    myVoteStack: any;
    myTempVoteStack = 0;
    myEmail: string = "tktest@tktest.com";
    myPolls: any = [];// list of retrieved polls from the backend api
    // 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 = 'true';
    // 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();
    expirationDate = ''; // expiracy date
    voteStackId = null; // id of the vote stack to update
    pollId = null; // id of the current poll when created. data given by the backend api
    pollSlug = null; // id of the current poll when created. data given by the backend api
    currentPoll; // 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
    urlSlugPublic = null;
    urlPublic = environment.baseHref + '/#/poll/id/4';
    urlAdmin = environment.baseHref + '/#/admin/d65es45fd45sdf45sd345f312sdf31sgfd345';
    adminKey = ''; // key to change config of the poll
    owner_modifier_token = ''; // key to change a vote stack
    canModifyAnswers: boolean = true;// bool for the frontend selector
    whoModifiesAnswers = "everybody";// everybody, self, nobody (= just admin)
    whoCanChangeAnswers = 'everybody';// everybody, self, nobody (= just admin)
    dateList: any = otherDefaultDates; // sets of days as strings, config to set identical time for days in a special days poll
    timeList: DateChoice[] = otherDefaultDates; // ranges of time expressed as strings

    answers: PollAnswer[] = defaultAnswers;

    resetConfig() {
        const self = this;
        Object.keys(baseConfigValues).forEach((key) => {
            self[key] = baseConfigValues[key];
        })
    }
}

result-matching ""

    No results matching ""