X-Git-Url: https://code.th-h.de/?p=usenet%2Fusevote.git;a=blobdiff_plain;f=UVmenu.pm;h=07e32c86436a84c597cc295007f99b33159c3c29;hp=d90da9ca39399b3964d5761e2bf3d773268176b0;hb=b4bfb234881080210ca8d019b8aa317b3a709d56;hpb=ac7e2c541a18c5c910548f5cddaf56502b6e51b0 diff --git a/UVmenu.pm b/UVmenu.pm index d90da9c..07e32c8 100644 --- a/UVmenu.pm +++ b/UVmenu.pm @@ -17,7 +17,8 @@ $VERSION = "0.4"; ############################################################################## # Menu for interaction with the votetaker # # Parameters: votes list and header (references to arrays) # -# Body, Mailadress, Name, Ballot ID (references to strings) # +# Body, Mailadress, Name, Ballot ID, # +# Voting (references to strings) # # List of newly set fields (reference to array) # # List of errors to correct (Array-Ref) # # Return Values: 'w': proceed # @@ -25,7 +26,7 @@ $VERSION = "0.4"; ############################################################################## sub menu { - my ($votes, $header, $body, $addr, $name, $ballot_id, $set, $errors) = @_; + my ($votes, $header, $body, $addr, $name, $ballot_id, $voting, $set, $errors) = @_; my $input = ""; my $voter_addr = $$addr || ''; my $voter_name = $$name || ''; @@ -59,6 +60,7 @@ sub menu { while (1) { system($config{clearcmd}); + print "-> $config{votename} <-\n"; print UVmessage::get("MENU_PROBLEMS") . "\n"; foreach my $error (keys %errors) { @@ -68,6 +70,12 @@ sub menu { my $menucaption = UVmessage::get("MENU_CAPTION"); print "\n\n$menucaption\n"; print "=" x length($menucaption), "\n\n"; + + # don't print this option if called from uvcfv.pl + unless ($mailonly) { + print "(0) ", UVmessage::get("MENU_DIFF_BALLOT"), "\n"; + } + print "(1) ", UVmessage::get("MENU_SHOW_MAIL"), "\n\n", UVmessage::get("MENU_CHANGE_PROPERTIES"), "\n", "(2) ", UVmessage::get("MENU_ADDRESS"), " [$voter_addr]\n"; @@ -79,6 +87,7 @@ sub menu { print "(5) ", UVmessage::get("MENU_BALLOT_ID"), " [$$ballot_id]\n" if ($config{personal}); print "(6) ", UVmessage::get("MENU_BDSG"), "\n" if ($config{bdsg}); + print "(7) ", UVmessage::get("MENU_VOTING"), " [", $$voting, "]\n"; } print "\n", @@ -93,7 +102,14 @@ sub menu { # only accept 1, 2, i and w if called from uvcfv.pl next if ($mailonly && $input !~ /^[12iw]$/i); - if ($input eq '1') { + if ($input eq '0') { + # ignore SIGPIPE (Bug in more and less) + $SIG{PIPE} = 'IGNORE'; + open (DIFF, "|$config{diff} - $config{sampleballotfile} | $config{pager}"); + print DIFF $$body, "\n"; + close (DIFF); + + } elsif ($input eq '1') { system($config{clearcmd}); # ignore SIGPIPE (Bug in more and less) $SIG{PIPE} = 'IGNORE'; @@ -269,6 +285,22 @@ sub menu { $errors{InvalidBDSG} = UVmessage::get("MENU_INVALIDBDSG"); } + } elsif ($input eq '7') { + my $sel; + do { + print "[a] ", UVmessage::get("MENU_VOTING_CORRECT"), "\n", + "[b] ", UVmessage::get("MENU_VOTING_WRONG"), "\n\n", + UVmessage::get("MENU_PROMPT"); + $sel = ; + } until ($sel =~ /^[ab]$/i); + + if ($sel =~ /^a$/i) { + delete $errors{NoVoting}; + delete $errors{WrongVoting}; + } else { + $errors{WrongVoting} = UVmessage::get("MENU_WRONGVOTING"); + } + } elsif ($input =~ /^i$/i) { my $ignore = UVmessage::get("MENU_IGNORE_STRING"); # Set columns for Text::Wrap