#!/usr/bin/perl -w use TicketTracker; use CGI qw/:standard/; use Data::Dumper; my $CSS = <<"CSS"; h3 { border: solid 1px #000; background-color: #eef; padding: 3px; } h2 { border: solid 1px #000; background-color: #ddf; padding: 3px; } th { vertical-align: middle; text-align: center; padding: 2px; border-bottom: solid 1px #000; margin: 0px; background-color: #ffc; } td { vertical-align: middle; padding: 2px; margin:0px ;} .shaded { background-color: #ddd; } input { border: solid 1px #999; margin: 3px;} input:hover { border: solid 1px #000; } textarea { border: solid 1px #999; } textarea:hover { border: solid 1px #000; } CSS print header; print start_html(-style=>{-code => $CSS}, -title=>'Ticket Tracker'); print "DB not specified" and die unless $ENV{PATH_INFO}; my $dbfile = "./$ENV{PATH_INFO}"; my $db = TicketTracker::open($dbfile); print "

Ticket Tracker

\n"; if (param('edit')) { my $id = param('id'); print $db->html_ticket($id); } elsif (param('own')) { if ($db->user_exists(param('user'))) { if ($db->get_user(param('user'))->password_ok(param('passwd'))) { $db->set_owner(param('id'),param('user')); $db->warn_users(param('id'),"owned by ",param('user')); my $id = param('id'); Delete_all(); print $db->html_ticket($id); } else { print "Invalid password\n"; } } else { print "Invalid username\n"; } } elsif (param('addcomment')) { if ($db->user_exists(param('user'))) { if ($db->get_user(param('user'))->password_ok(param('passwd'))) { $db->add_comment(param('id'),param('user'),param('comments')); $db->warn_users(param('id'),'new comment'); my $id = param('id'); Delete_all(); print $db->html_ticket($id); } else { print "Invalid password\n"; } } else { print "Invalid username\n"; } } elsif (param('addlistener')) { if ($db->user_exists(param('user'))) { if ($db->get_user(param('user'))->password_ok(param('passwd'))) { $db->add_listener(param('id'),param('user')); $db->warn_users(param('id'),"new listener ",param('user')); my $id = param('id'); Delete_all(); print $db->html_ticket($id); } else { print "Invalid password\n"; } } else { print "Invalid username\n"; } } elsif (param('close')) { if ($db->user_exists(param('user'))) { if ($db->get_user(param('user'))->password_ok(param('passwd'))) { $db->close_ticket(param('id')); $db->warn_users(param('id'),"closed by ",param('user')); my $id = param('id'); Delete_all(); print $db->html_ticket($id); } else { print "Invalid password\n"; } } else { print "Invalid username\n"; } } elsif (param('addticket')) { print start_form; print ""; print "\n"; print ""; print ""; print ""; print ""; print ""; print "
Add Ticket
Post user", textfield('user','',10,15),"
Password", password_field('passwd','',10,30),"
Title", textfield('title','',40,50),"
Comments", textarea('comments','',10,40),"
",submit(-name => 'addticket1', -value => 'Add'),"
"; print end_form; } elsif (param('addticket1')) { if ($db->user_exists(param('user'))) { if ($db->get_user(param('user'))->password_ok(param('passwd'))) { if (param('title') !~ m!^\s+!) { my $ticket = $db->new_ticket(param('user'), param('title'), param('comments')); $db->warn_all_users($ticket,"created by ".param('user')); print $db->html_ticket($ticket); } else { print "Invalid title\n"; } } else { print "Invalid password\n"; } } else { print "Invalid username\n"; } } else { print "

Current Tickets

"; print $db->html_ticket_list; print "

Create a Ticket

"; print start_form; print submit(-name => 'addticket', -value => 'New Ticket'); print end_form; }