Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
package page_vote
import ()
type TemplateVars struct {
Position int
Name string
Title string
Sentence string
MinChoices int
MaxChoices int
VoteOpen bool
VoteRecorded bool
Answers []TemplateAnswer
TotalVoteCount int
}
type TemplateAnswer struct {
Name string
Sentence string
VoteCount int
}
const TEMPLATE_CHOICE_STR = `<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vote Électrolab - {{.Title}}</title>
<!--link type="text/css" rel="stylesheet" href="/css/style.css"-->
<script type="text/javascript">
function checkForm() {
{{ if not .VoteOpen }}
return false;
{{ end }}
var nbOfAnswers = 0;
var answers = document.getElementsByName("answer");
for (var i=0; i<answers.length; i++) {
if (answers[i].checked) {
nbOfAnswers++;
}
}
if (nbOfAnswers < {{.MinChoices}}) {
alert("Vous devez sélectionner au minimum {{.MinChoices}} réponse(s)");
return false;
}
if ({{.MaxChoices}} >=0 && (nbOfAnswers > {{.MaxChoices}})) {
alert("Vous devez sélectionner au maximum {{.MinChoices}} réponse(s)");
return false;
}
return confirm("Tout vote est définitif. Cliquez sur OK pour valider le vote.");
}
</script>
</head>
<body>
<h1>Vote nº{{.Position}} - {{.Title}}</h1>
<h2>{{.Sentence}}</h2>
<form id="answers_form" method="post" onsubmit="return checkForm();">
{{ if eq 1 .MinChoices .MaxChoices }}
{{ range .Answers }}
<input type="radio" id="answer_{{.Name}}" name="answer" value="{{.Name}}">
<label for="answer_{{.Name}}">{{.Sentence}}</label>
{{ end }}
{{ else }}
{{ range .Answers }}
<input type="checkbox" id="answer_{{.Name}}" name="answer" value="{{.Name}}">
<label for="answer_{{.Name}}">{{.Sentence}}</label>
{{ end }}
{{ end }}
{{ if .VoteOpen }}
<input type="submit" value="Voter">
{{ else if .VoteRecorded }}
<p>Votre vote a été enregistré. Vous pourrez rafraichir la page au moment de la cloture pour voir les résultats.</p>
{{ else }}
<p>Le vote n'est pas encore ouvert. Vous pourrez rafraichir la page au moment de l'ouverture pour voter.</p>
{{ end }}
</form>
<p class="footer">
<p>Empreinte de l'exécutable: {{.ExeFingerprint}}</p>
<p>Version du commit: {{.CodeCommit}}</p>
<p>Date du commit: {{.CodeDate}}</p>
</p>
</body>
</html>
`