yet more mod_perl stuff
[freeside.git] / htdocs / edit / agent.cgi
1 #!/usr/bin/perl -Tw
2 #
3 # $Id: agent.cgi,v 1.6 1999-01-25 12:09:50 ivan Exp $
4 #
5 # ivan@sisd.com 97-dec-12
6 #
7 # Changes to allow page to work at a relative position in server
8 # Changed 'type' to 'atype' because Pg6.3 reserves the type word
9 #       bmccane@maxbaud.net     98-apr-3
10 #
11 # use FS::CGI, added inline documentation ivan@sisd.com 98-jul-12
12 #
13 # $Log: agent.cgi,v $
14 # Revision 1.6  1999-01-25 12:09:50  ivan
15 # yet more mod_perl stuff
16 #
17 # Revision 1.5  1999/01/19 05:13:31  ivan
18 # for mod_perl: no more top-level my() variables; use vars instead
19 # also the last s/create/new/;
20 #
21 # Revision 1.4  1999/01/18 09:41:21  ivan
22 # all $cgi->header calls now include ( '-expires' => 'now' ) for mod_perl
23 # (good idea anyway)
24 #
25 # Revision 1.3  1998/12/17 06:16:57  ivan
26 # fix double // in relative URLs, s/CGI::Base/CGI/;
27 #
28 # Revision 1.2  1998/11/23 07:52:08  ivan
29 # *** empty log message ***
30 #
31
32 use strict;
33 use vars qw ( $cgi $agent $action $hashref $p $agent_type );
34 use CGI;
35 use CGI::Carp qw(fatalsToBrowser);
36 use FS::UID qw(cgisuidsetup);
37 use FS::CGI qw(header menubar popurl);
38 use FS::Record qw(qsearch qsearchs fields);
39 use FS::agent;
40 use FS::agent_type;
41
42 $cgi = new CGI;
43
44 &cgisuidsetup($cgi);
45
46 if ( $cgi->param('error') ) {
47   $agent = new FS::agent ( {
48     map { $_, scalar($cgi->param($_)) } fields('agent')
49   } );
50 } elsif ( $cgi->keywords ) {
51   my($query) = $cgi->keywords;
52   $query =~ /^(\d+)$/;
53   $agent = qsearchs( 'agent', { 'agentnum' => $1 } );
54 } else { #adding
55   $agent = new FS::agent {};
56 }
57 $action = $agent->agentnum ? 'Edit' : 'Add';
58 $hashref = $agent->hashref;
59
60 $p = popurl(2);
61
62 print $cgi->header( '-expires' => 'now' ), header("$action Agent", menubar(
63   'Main Menu' => $p,
64   'View all agents' => $p. 'browse/agent.cgi',
65 ));
66
67 print qq!<FONT SIZE="+1" COLOR="#ff0000">Error: !, $cgi->param('error'),
68       "</FONT>"
69   if $cgi->param('error');
70
71 print '<FORM ACTION="', popurl(1), 'process/agent.cgi" METHOD=POST>',
72       qq!<INPUT TYPE="hidden" NAME="agentnum" VALUE="$hashref->{agentnum}">!,
73       "Agent #", $hashref->{agentnum} ? $hashref->{agentnum} : "(NEW)";
74
75 print <<END;
76 <PRE>
77 Agent                     <INPUT TYPE="text" NAME="agent" SIZE=32 VALUE="$hashref->{agent}">
78 Agent type                <SELECT NAME="typenum" SIZE=1>
79 END
80
81 foreach $agent_type (qsearch('agent_type',{})) {
82   print "<OPTION VALUE=". $agent_type->typenum;
83   print " SELECTED"
84     if $hashref->{typenum} == $agent_type->getfield('typenum');
85   print ">", $agent_type->getfield('typenum'), ": ",
86         $agent_type->getfield('atype'),"\n";
87 }
88
89 print <<END;
90 </SELECT>
91 Frequency (unimplemented) <INPUT TYPE="text" NAME="freq" VALUE="$hashref->{freq}">
92 Program (unimplemented)   <INPUT TYPE="text" NAME="prog" VALUE="$hashref->{prog}">
93 </PRE>
94 END
95
96 print qq!<BR><INPUT TYPE="submit" VALUE="!,
97       $hashref->{agentnum} ? "Apply changes" : "Add agent",
98       qq!">!;
99
100 print <<END;
101     </FORM>
102   </BODY>
103 </HTML>
104 END
105