summaryrefslogtreecommitdiff
path: root/vote
diff options
context:
space:
mode:
authorThorsten Behrens <tbehrens@suse.com>2012-02-12 21:27:52 +0100
committerThorsten Behrens <tbehrens@suse.com>2012-02-12 21:27:52 +0100
commita0996dead0a55ed0ff5a20466dc8c565090e02ad (patch)
treeb386b37a3ba7c66d645ea5f7e31206a50b684e59 /vote
parent793527f4706f214098170abca852531e91e8d7ad (diff)
Add new flag enforce_nb to election schema
Needed for pure majority votings - only permit up to choices_nb number of selections.
Diffstat (limited to 'vote')
-rw-r--r--vote/include/schema.sql1
-rw-r--r--vote/vote.wml16
2 files changed, 13 insertions, 4 deletions
diff --git a/vote/include/schema.sql b/vote/include/schema.sql
index 3722036..68df66e 100644
--- a/vote/include/schema.sql
+++ b/vote/include/schema.sql
@@ -5,6 +5,7 @@
`voting_start` datetime default NULL,
`voting_end` datetime default '0000-00-00 00:00:00',
`choices_nb` int(11) NOT NULL default '0',
+ 'enforce_nb' BOOL NOT NULL default '0',
`question` text NOT NULL,
PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8;
diff --git a/vote/vote.wml b/vote/vote.wml
index c3c62e9..3454b10 100644
--- a/vote/vote.wml
+++ b/vote/vote.wml
@@ -134,10 +134,18 @@ if ($step==2)
// @licend The above is the entire license notice for the JavaScript code in this page.
function addPreference(listItem)
{
-var preferenceList = document.getElementById('preferences');
-listItem.parentNode.removeChild(listItem);
-preferenceList.appendChild(listItem);
-listItem.setAttribute('onclick', 'removePreference(this)');
+ var preferenceList = document.getElementById('preferences');
+ var childCount = preferenceList.getElementsByTagName('li').length;
+<?php
+ if (isset ($election) && $election["enforce_nb"] !== FALSE) {
+ echo " if (childCount < " . escape_js_var($election["choices_nb"]) . ")\n";
+ }
+?>
+ {
+ listItem.parentNode.removeChild(listItem);
+ preferenceList.appendChild(listItem);
+ listItem.setAttribute('onclick', 'removePreference(this)');
+ }
}
function removePreference(listItem)
{