forked from andrewcmyers/civs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcivs_create.html.hu
286 lines (266 loc) · 12.3 KB
/
civs_create.html.hu
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>Condorcet Internet Szavazási Szolgáltatás</title>
<link rel="stylesheet" type="text/css" href="@CIVSURL@/style.css" />
<meta http-equiv="Content-Script-Type" content="text/javascript">
<script type="text/javascript">
function trim(str)
{
return str.replace(/^\s+|\s+$/g, '')
};
function validateEmail(str) // element to be validated
{
var str = trim(str); // value of field with whitespace trimmed off
var email = /^[^@]+@[^@.]+\.[^@]*\w\w$/
return email.test(str);
};
function validate() {
var numerrs = 0;
var errs = new Array;
if (!validateEmail(document.forms.CreateElection.email_addr.value)) {
errs[numerrs++] = 'A szavazásgazda email c<me hibás.';
}
if (!(document.forms.CreateElection.num_winners.value >= 1)) {
errs[numerrs++] = 'Legalább egy győztes kell legyen.';
}
if (document.forms.CreateElection.proportional.checked &&
!(document.forms.CreateElection.num_winners.value > 1)) {
errs[numerrs++] =
'Az arányos képviselethez egynél több győztes kell.';
}
if (document.forms.CreateElection.choices.value == '' &&
document.forms.CreateElection.choices_file.value == '') {
errs[numerrs++] = 'Legalább két lehetőség kell a választáshoz.';
}
if (document.forms.CreateElection.restrict_results.checked) {
var rs = document.forms.CreateElection.result_addrs.value;
var ra = rs.split(/[\r\n]+/g);
var nr = 0;
for (i = 0; i < ra.length; i++) {
if (ra[i] == '') continue;
if (!validateEmail(ra[i])) {
errs[numerrs++] =
'Az eredmény megtekintőjének email címe hibás:' + ra[i];
} else {
nr++;
}
}
if (nr == 0) {
errs[numerrs++] =
'Senkit nem adtál meg aki megtekinthetné az eredményeket.';
}
}
if (numerrs == 0) return true;
if (numerrs == 1) {
alert(errs[0]);
} else {
var msg = 'Hibák:\n';
for (i = 0; i < numerrs; i++) {
msg += (i+1);
msg += '. ';
msg += errs[i];
msg += "\n";
}
alert(msg);
}
return false;
}
var prcontrol, prparent;
var rvcontrol, rvparent;
var rrcontrol, rrparent;
function setup() {
prcontrol = document.getElementById("prcontrol");
prparent = prcontrol.parentNode;
prparent.removeChild(prcontrol);
rvcontrol = document.getElementById("reveal_voters");
rvparent = rvcontrol.parentNode;
rvparent.removeChild(rvcontrol);
rrcontrol = document.getElementById("rrcontrol");
rrparent = rrcontrol.parentNode;
rrparent.removeChild(rrcontrol);
}
function render_text(prefix, ta_id, span_id) {
var span = document.getElementById(span_id);
var ta = document.getElementById(ta_id);
span.innerHTML = prefix + ta.value;
return 1;
}
function render_list(ta_id, span_id) {
var span = document.getElementById(span_id);
var ta = document.getElementById(ta_id);
var names = ta.value.split(/[\r\n]+/g);
var html = "";
for (i = 0; i < names.length; i++) {
html = html + "<li>" + names[i] + "</li>";
}
span.innerHTML = "<ul>" + html + "</ul>";
return 1;
}
</script>
</head>
<body>
<table class="banner" border="0" width="100%" cellspacing="0" cellpadding="7">
<tbody><tr>
<td width="100%" valign="top" nowrap>
<h1> Condorcet Internet Szavazási Szolgáltatás</h1>
</td>
<td width=0% nowrap valign=top align=right>
<a href="@CIVSHOME@">CIVS</a><br>
<a href="@CIVSURL@/civs_create.html">Új szavazás létrehozása</a><br>
<a href="@CIVSURL@/sec_priv.html">A biztonságról és bizalmasságról</a><br>
<a href="@CIVSURL@/faq.html">Gyakran Ismételt Kérdések</a>
</td>
</tr>
<tr>
<td width="100%" valign="top" nowrap colspan=2>
<h2 align="center">Új szavazás létrehozása</h2>
</td>
</tr>
</tbody>
</table>
<div class="contents">
<form method="POST"
action="@CIVSBINURL@/create_election@PERLEXT@"
enctype="multipart/form-data"
name="CreateElection"
onsubmit="return validate()">
<table class="form">
<tr>
<td align=right>A szavazás neve(pl. <b>A Magyar Köztársaság Elnöke</b>):</td>
<td><input type="text" name="title" size="50"></td>
<tr>
<td align=right>A szavazás gazdájának neve (a tiéd):</td>
<td><input type="text" name="name" size="20">
</td>
<tr>
<td align=right>A szavazás gazdájának e-mail címe:</td>
<td><input type="text" name="email_addr" size="20"
onchange="if (!validateEmail(this.value)) { alert('Hibás email cím!') }" >
</td>
</tr>
<tr>
<td valign=top align=right>Mikor szeretnéd a szavazást befejezni:<br>
<small>(<b>Figyelem:</b> A szavazásokat kézzel kell befejezni)</small>
</td>
<td><input type="text" name="election_end" id="election_end" size="30"
onchange="render_text('<br><i>Előnézet</i>: A szavazás vége:', 'election_end', 'rendered_end')">
<span class="rendering" id="rendered_end"></span>
</td>
</tr>
</table>
<div class="emphasized"><small>
A neved és e-mail címed használatával küldjük ki az e-mailt a szavazóknak.
A neved a szavazók számára legyen felismerhető és az e-mail címnek működnie kell,
mert a CIVS e-mailben küldi el neked azt az információt, ami aszavazás vezérléséhez kell.
Biztosítsd hogy a spamszűrőd nem blokkolja a levelet a
<kbd>@SUPERVISOR@</kbd> címről (vagy ellenőrizd a spam folderedet, ha nem jön a levél!).
</small></div>
<p>A szavazás és az elérhető választások leírása (tartalmazhat HTML-t):<br>
<table class="form">
<tr>
<td><textarea id="description" valign="top" rows="5" name="description" cols="60"></textarea>
</td>
<td><input type="button" value="Előnézet>>"
onClick="render_text('<h2>Szavazás leírása</h2>',
'description',
'rendered_description')"></td>
<td valign="top"><span class="rendering" id="rendered_description"></span></td>
</tr>
</table>
</p>
<p>Írd be a nevét az összes választási lehetőségnek (jelöltnek)
soronként egyet, vagy tölts fel egy file-t amely az összes lehetőséget tartalmazza:</p>
<p align="left">
<table class="form">
<tr><td>
<textarea rows="5" name="choices" cols="60" id="choices"></textarea></td>
<td>
<td><input type="button" value="Előnézet>>"
onClick="render_list('choices', 'rendered_choices')"></td>
<td valign="top"><span class="rendering" id="rendered_choices"></span></td>
</tr>
</table>
</p>
<p align="left"><input type=file name="choices_file"></p>
<p>Ennyi lehetőség nyer: <input type="text" name="num_winners" size="5" value="1"></p>
<p>Az e-mail címe maximum 1000 szavazónak, soronként egy.
Később is lehet szavazókat hozzáadni.</p>
<p><textarea rows="2" name="addresses" cols="50"></textarea></p>
<p><input type=file name="addresses_file"></p>
<h3>További lehetőségek <small>(húzd az egeret a jelölőnégyzet fölé további információért)</small></h3>
<p><input type="checkbox" name="public" value="yes"
title="A nyilvános szavazásban egyetlen URL-t kapsz, amelyen bármely szavazó szavazhat. Ezért közzé lehet tenni levelezőlistán. Viszont csak jelzésértékű próbálkozás történik a többszörös szavazás kiszűrésére, a szavazó IP címe alapján. Ha biztosra akarsz menni, hogy a szavazók csak egyszer szavaznak, privát szavazást alkalmazz inkább.">
Legyen a szavazás nyilvános.
<br>
<input type="checkbox" name="external_ballots" value="yes"
title="Ha a szavazatok mindegyikét inkább saját magad szeretnéd feltölteni, jelöld be ezt a négyzetet. Az ilyen szavazásokban szavazók nem szavazhatnak. Ez akkor lehet hasznos, amikor megpróbálod megérteni, hogy a különböző szavazási módszerek hogyan működnek, vagy ha a CIVS-en kívüli forrásból szereztél szavazatokat.">
Legyen ez egy teszt szavazás: olvasd az összes szavazatot egy fájlból.
<br>
<input type="checkbox" name="restrict_results" value="yes"
onClick="rrparent.appendChild(rrcontrol);"
title="Alapértelmezésben a szavazás eredménye mindenki számára látható aki szavaz.
Ha az eredmények megtekintését az emberek egy más csoportjának akarod elérhetővé tenni, használd ezt az opciót.">
A szavazás eredménye csak egy szűk csoport által megtekinthető.
<br>
<span>
<p class="suboption" id="rrcontrol">
Írd be azoknak az email címét, akik megnézhetik a szavazás eredményét:
(Minden szavazó megnézheti ezeket az email címeket)
</br>
<textarea rows="2" name="result_addrs" cols="50"></textarea>
</p>
</span>
<input type="checkbox" name="ballot_reporting" value="yes"
onClick="rvparent.appendChild(rvcontrol);"
title="Ez az opció lehetővé teszi, hogy minden szavazó megtekinthesse az összes szavazatot. Mindazonáltal a szavazókat azonosító információ nem lesz látható, kivéve ha a következő opciót is bejelölöd.">
Részletes szavazat jelentés engedélyezése.
<span>
<p class="suboption" id="reveal_voters">
<input type="checkbox" name="reveal_voters" value="yes">
A részletes szavazat jelentésben a szavazókat is jelenítsd meg a szavazatuk mellett.
<br>A szavazás <i class="warning">nem</i> titkos, ha ez az opció be van állítva, és a kiszolgáló nem törli a szavazók email címét, ahogyan azt normálisan tenné.
A szavazók figyelmeztetve lesznek az anonimitás hiányára.
</p>
</span><br>
<input type="checkbox" name="writeins" value="yes"
title="Ezzel az opcióval engedélyezheted a további lehetőségek hozzáadását.
Mindazonáltal a további lehetőségeknek nagy hátránya van, ha akkor kerülnek fel, amikor már néhány szavazatot leadtak. Ezért ha ez az opció van kiválasztva, van egy beírási fázis amikor szvazatot még nem lehet leadni, a szavazás gazdájának explicit módon indítania kell a szvazást.">
Engedjük a szavazóknak hogy beírjanak lehetőségeket.<br>
<input type="checkbox" name="shuffle" value="no"
title="Alapértelmezésben a lehetőségeket véletlenszerű sorrendben jelenítjük meg minden szavazólapon. Néhány szavazásnál pl. ha találkozó időpontját választjuk ki, a szavazók számára kényelmesebb pontosan ugyanazt a sorrendet látni, mint fennt.">
A lehetőségeket pontosan a megadott sorrendben jelenítsd meg.<br>
<input type="checkbox" name="no_opinion" value="yes"
title="A "nincs vélemény" opciónak váratlan eredményei lehetnek. Mindenképpen olvass róla, és informáld a szavazókat.">
A szavazók választhatják a “nincs vélemény” lehetőséget.<br>
<input type="checkbox" name="proportional" value="yes"
onClick="prparent.appendChild(prcontrol)"
title="Az arányos mód csak többnyerteses választásokon hasznos, amikor biztosítani szeretnéd hogy a szavazók igényei arányosan legyenek képviselve. Egyébként a szavazók többsége dönthet a nyertesek mindegyikéről. Az arányos mód sokkal lassabb mint a szokásos nem arányos mód, és nem szabad használni amikor sok lehetőség és sok győztes van. A legtöbb, de nem minden esetben az arányos és nem arányos mód eredményei megegyeznek. Kattints a 'további információk' linkre ahhoz, hogy többet megtudj arról, ez a mód hogyan működik.">
Arányos reprezentáció [<a href="proportional.html">további információk</a>]</br>
<span>
<p class="suboption" id="prcontrol">
Az arányos reprezentációnál a szavazókról feltételezzük, hogy:<br>
<input type="radio" name="rating_interpretation"
value="best_choice"
checked> a kedvenc választásuk rangját maximalizálják<br>
<input type="radio" name="rating_interpretation"
value="combined_ratings"> a kiválasztott lehetőségek összsűlyát maximalizálják<br>
</p>
</span>
<div class="emphasized">
Bizonyosodj meg arról hogy az e-mail címed korrekt, mert a szavazás információit
emailben kapod meg. A szavazók addig nem lesznek tájékoztatva a szavazás létéről, amíg nem válaszolsz erre az e-mail üzenetre.
</div>
<p style="margin-left: 5ex">
<input type="submit" value="Szavazás létrehozása" name="submit">
</p>
</form>
</div>
<script type="text/javascript">
setup();
</script>
</body>
</html>