#!/usr/bin/perl require "cookies.pl"; require "utils.pl"; require "db.pl"; &get_userinfo($userid, \%user); if(!$ENV{QUERY_STRING} && $ENV{REQUEST_METHOD} ne "POST") { print "Status: 302 Found\nLocation: http://$ENV{SERVER_NAME}/\n\n"; exit(0); } &parseform($ENV{QUERY_STRING}, \%form); &authenticate() unless $form{invitee}; if($form{id}) { $invitation_id = $form{id}; if($form{set_ready}) { &set_invitation_ready($invitation_id); print "Status: 302 Found\nLocation: http://$ENV{SERVER_NAME}/invite.cgi?id=$invitation_id\n\n"; exit(0); } if($form{emails}) { my $emails = &unescape($form{emails}); my @emails = parse_email_list($emails); &add_invitees($invitation_id,\@emails); print "Status: 302 Found\nLocation: http://$ENV{SERVER_NAME}/invite.cgi?id=$invitation_id\n\n"; exit(0); } if($form{message}) { my $message = &unescape($form{message}); my $subject = &unescape($form{subject}); my $send_to = &unescape($form{send_to}); &add_invitation_message($invitation_id,$message,$subject,$send_to); print "Status: 302 Found\nLocation: http://$ENV{SERVER_NAME}/invite.cgi?id=$invitation_id\n\n"; exit(0); } } elsif($form{invitee}) { &load_invitee($form{invitee}, \%invitee); $invitation_id = $invitee{invitation_id}; if($form{rsvp}) { $form{comments} = &unescape($form{comments}); $form{comments} =~ s/\r\n?/\n/gs; $form{comments} =~ s/^\s+//gs; $form{comments} =~ s/\s+$//gs; $form{comments} = undef unless $form{comments}; &set_invitee_response($form{invitee}, $form{rsvp}, $form{guestcount}, $form{comments}); print "Status: 302 Found\nLocation: http://$ENV{SERVER_NAME}/invite.cgi?invitee=$form{invitee}\n\n"; exit(0); } if( my @responses = grep { /poll\./ } keys %form ) { foreach my $poll_id (@responses) { my $answer = $form{$poll_id}; $poll_id =~ s/poll\.//; &set_invitee_poll_response($poll_id,$invitee{email_address_id},$answer); } print "Status: 302 Found\nLocation: http://$ENV{SERVER_NAME}/invite.cgi?invitee=$form{invitee}\n\n"; exit(0); } } &load_invitation($invitation_id, $invitee{email_address_id}, \%invite, \@emails, \@messages, \@polls); if(!%invite) { print "Status: 302 Found\nLocation: http://$ENV{SERVER_NAME}/\n\n"; exit(0); } if(@emails) { @emails = sort { return -1 if $a->{email_address_id} == $invite{owner_email_id}; return 1 if $b->{email_address_id} == $invite{owner_email_id}; return $a->{last_updated} <=> $b->{last_updated} if ($a->{response} eq $b->{response}) && $a->{response} ne "No Response"; return lc($a->{email_address}) cmp lc($b->{email_address}) if ($a->{response} eq $b->{response}); return $b->{response_code} <=> $a->{response_code}; } @emails; } use Date::Manip; open(RE,"; close(RE); chomp $urlregex; $urlregex = qr/$urlregex/i; print $headers,"\n"; print $leadin; print qq[$invite{name}
\n]; print qq[Event date: ], UnixDate($invite{event_date}, $dateformat), qq[
\n]; print qq[\n]; print qq[\n]; print qq[\n]; print qq[]; print qq[\n]; print qq[
\n]; if($userid == $invite{owner}) { if($invite{ready} eq 'N') { print qq[\n]; print qq[This invitation has not been sent.
\n]; print qq[Click here to mark it Ready To Send
\n]; print qq[
\n]; print qq[
\n]; } } for($i=0;$i<@messages;$i++) { if( !%invitee || $messages[$i]->{send_to} eq 'All' || $messages[$i]->{send_to} eq $invitee{response} || ( $messages[$i]->{send_to} eq 'Not No Response' && $invitee{response} ne 'No Response' ) || ( $messages[$i]->{send_to} eq 'Not No' && $invitee{response} ne 'No' ) || ( $messages[$i]->{send_to} eq 'Undecided' && ( $invitee{response} eq 'Maybe' || $invitee{response} eq 'No Response' ) ) || ( $messages[$i]->{send_to} eq 'Yes/Maybe' && ( $invitee{response} eq 'Yes' || $invitee{response} eq 'Maybe' ) ) ) { print qq[
\n]; print qq[\n]; if(@messages > 1) { print qq[Subject: ], $messages[$i]->{subjectline}, qq[
\n]; print qq[Date: ], UnixDate($messages[$i]->{message_date}, $dateformat), qq[
\n]; if($userid == $invite{owner}) { print qq[Send to: ], $messages[$i]->{send_to}, qq[
\n]; } } print qq[
\n]; $messages[$i]->{message} =~ s/&/&/gs; $messages[$i]->{message} =~ s/{message} =~ s/>/>/gs; $messages[$i]->{message} =~ s/\r?\n/
\n/gs; $messages[$i]->{message} =~ s!($urlregex)!$1!gs; print $messages[$i]->{message}; print qq[
\n]; print qq[\n]; print qq[
\n
\n] if $i+1<@messages; print qq[
\n]; } } if($userid == $invite{owner}) { print qq[
\n]; print qq[
\n]; print qq[\n]; print qq[Subject: ]; print qq[
\n]; print qq[
\n]; print qq[Send To: ]; print qq[\n]; print qq[\n]; print qq[
\n]; } if(@polls) { print qq[\n]; print qq[
\n]; print qq[
\n]; if(%invitee) { print qq[
\n]; print qq[\n]; } print qq[\n]; for($i=0;$i<@polls;$i++) { print qq[\n]; } if(%invitee) { print qq[\n]; print qq[\n]; } elsif($userid == $invite{owner} && $form{polls} ne "viewall") { print qq[\n]; } print qq[
\n]; print $polls[$i]->{question}, qq[
\n]; if($polls[$i]->{question_type} eq "yesno") { @answers = ("Yes", "No"); } elsif($polls[$i]->{question_type} eq "multichoice") { @answers = split /\255/, $polls[$i]->{answers}; } if($userid == $invite{owner}) { if($form{polls} eq "viewall") { @results = &detailed_results_for_poll($polls[$i]->{poll_id}); print qq[\n]; for($j=0;$j<@answers;$j++) { print qq[\n]; } print qq[
], $answers[$j], qq[:(], (scalar @{$results[$j+1]} || 0), qq[)], join(", ", @{$results[$j+1]}), qq[
\n]; } else { @results = &results_for_poll($polls[$i]->{poll_id}); print qq[\n]; for($j=0;$j<@answers;$j++) { print qq[\n]; } print qq[
], $answers[$j], qq[:], ($results[$j+1]||0), qq[
\n]; } } else { @results = &results_for_poll($polls[$i]->{poll_id}) if $invitee{has_voted}; for($j=0;$j<@answers;$j++) { print qq[{poll_id} VALUE="], ($j+1), qq["], $polls[$i]->{invitee_response} == ($j+1) ? " CHECKED":"", qq[>$answers[$j]]; print qq[ (], ($results[$j+1]||0), qq[)] if $invitee{has_voted}; print qq[
\n]; } } print qq[
\n]; print qq[\n]; print qq[
\n]; print qq[Show all votes\n]; print qq[
\n]; } print qq[
\n]; if(%invitee) { print qq[]; print qq[\n]; print qq[]; print qq[\n]; print qq[\n]; print qq[\n] if @polls && $invitee{response} ne "No Response" && !$invitee{has_voted}; print qq[
Hello, ], $invitee{name} ? $invitee{name} : $invitee{email_address}, qq[
\n]; print qq[RSVP:
\n]; print qq[You haven't RSVP'd yet!
\n] if $invitee{response} eq "No Response"; print qq[\n]; print qq[Yes  ]; print qq[Maybe  ]; print qq[No
\n]; print qq[Guests: (including you)
\n]; print qq[Comments:
\n]; print qq[
\n]; print qq[\n]; print qq[
Don't forget to vote in the polls, below!
\n]; print qq[
]; } print qq[\n]; $count_yes=$count_yes_guests=$count_no=$count_maybe_guests=$count_maybe=0; for($i=0;$i<@emails;$i++) { my $rows = 1; $rows++ if($userid == $invite{owner} && $emails[$i]->{response} ne 'No Response'); $rows++ if($userid == $invite{owner} && $emails[$i]->{comments}); print qq[]; print qq[]; print qq[]; print qq[]; print qq[] if $userid == $invite{owner}; print qq[\n]; if($userid == $invite{owner} && $emails[$i]->{comments}) { print qq[]; print qq[]; print qq[\n]; } if($userid == $invite{owner} && $emails[$i]->{response} ne 'No Response') { print qq[]; print qq[]; print qq[\n]; } } print qq[]; print qq[
1) ? " ROWSPAN=$rows" : "", qq[>], ($i+1), qq[], $invitee{email_address_id} == $emails[$i]->{email_address_id} ? "":""; print $emails[$i]->{name}, " <" if $user{perms}{admin}; print $emails[$i]->{email_address}; print ">" if $user{perms}{admin}; print $invitee{email_address_id} == $emails[$i]->{email_address_id} ? "":"", qq[ 1) ? " ROWSPAN=$rows" : "", qq[>{guestcount}; print "yellow"; } elsif($emails[$i]->{response} eq "No") { $count_no++; print "red"; } elsif($emails[$i]->{response} eq "Yes") { $count_yes++; $count_yes_guests+=$emails[$i]->{guestcount}; print "green"; } elsif($emails[$i]->{mail_sent} eq 'N') { print "black"; } elsif($emails[$i]->{response} eq "No Response") { print "grey"; } print qq[light.gif" WIDTH=20 HEIGHT=20 BORDER=0> 1) ? " ROWSPAN=$rows" : "", qq[>], ($emails[$i]->{response} eq "Yes" || $emails[$i]->{response} eq "Maybe") ? $emails[$i]->{guestcount} : " ", qq[
Comments: ], $emails[$i]->{comments}, qq[
Last update: ], UnixDate($emails[$i]->{last_updated},"%l"), qq[
]; print qq[ $count_yes]; print qq[ ($count_yes_guests)] if $count_yes_guests != $count_yes; print qq[     ]; print qq[ $count_maybe]; print qq[ ($count_maybe_guests)] if $count_maybe_guests != $count_maybe; print qq[     ]; print qq[ $count_no]; print qq[
\n]; if($userid == $invite{owner}) { print qq[
\n]; print qq[\n]; print qq[
\n]; print qq[\n]; print qq[
\n]; print qq[Click here to invite people from the database
\n] if $user{perms}{admin}; } print qq[
\n]; print $leadout;