diff options
author | Thorsten Behrens <tbehrens@suse.com> | 2012-02-12 21:27:52 +0100 |
---|---|---|
committer | Thorsten Behrens <tbehrens@suse.com> | 2012-02-12 21:27:52 +0100 |
commit | a0996dead0a55ed0ff5a20466dc8c565090e02ad (patch) | |
tree | b386b37a3ba7c66d645ea5f7e31206a50b684e59 /vote | |
parent | 793527f4706f214098170abca852531e91e8d7ad (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.sql | 1 | ||||
-rw-r--r-- | vote/vote.wml | 16 |
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) { |