3 # Display settings for some dialer
5 require './ppp-client-lib.pl';
9 &ui_print_header(undef, $text{'edit_title1'}, "");
12 &ui_print_header(undef, $text{'edit_title2'}, "");
13 $dialer = $conf->[$in{'idx'}];
15 ($ddialer) = grep { lc($_->{'name'}) eq 'dialer defaults' } @$conf;
16 if ($inherits = $dialer->{'values'}->{'inherits'}) {
17 ($parent) = grep { lc($_->{'name'}) eq lc($inherits) } @$conf;
20 if (lc($dialer->{'name'}) eq 'dialer defaults') {
21 print "$text{'edit_ddesc'}<p>\n";
24 print "<form action=save.cgi method=post>\n";
25 print "<input type=hidden name=new value='$in{'new'}'>\n";
26 print "<input type=hidden name=idx value='$in{'idx'}'>\n";
27 print "<table border width=100%>\n";
28 print "<tr $tb> <td><b>$text{'edit_header'}</b></td> </tr>\n";
29 print "<tr $cb> <td><table width=100%>\n";
31 print "<tr> <td><b>$text{'edit_name'}</b></td> <td>\n";
32 if (lc($dialer->{'name'}) eq 'dialer defaults') {
33 # Don't allow renaming of the defaults
34 print $text{'index_defaults'};
37 elsif ($dialer->{'name'} =~ /^Dialer\s+(.*)$/ || $in{'new'}) {
38 # Some normal dialer name
39 print "<input name=dialer size=20 value='$1'>\n";
42 # Some other oddly-named section
43 print "<input name=name size=20 value='$dialer->{'name'}'>\n";
47 print &opt_input("Phone", $text{'edit_phone'}, 20);
51 print &opt_input("Username", $text{'edit_user'}, 20);
52 print &opt_input("Password", $text{'edit_pass'}, 20, "type=password");
56 print &opt_input("Dial Prefix", $text{'edit_prefix'}, 10);
57 print &yes_no_input("Stupid Mode", $text{'edit_stupid'}, 0);
60 print "<tr> <td><b>$text{'edit_other'}</b></td> <td colspan=3>\n";
61 for($i=1; $i<=4; $i++) {
62 printf "<input name=other_%d size=20 value='%s'>\n",
63 $i, $dialer->{'values'}->{'phone'.$i};
65 print "</td> </tr>\n";
67 print "<tr> <td><b>$text{'edit_inherits'}</b></td> <td colspan=3>\n";
68 printf "<input type=radio name=inherits_def value=1 %s> %s\n",
69 $inherits ? "" : "checked", $text{'edit_def'};
70 printf "<input type=radio name=inherits_def value=0 %s> %s\n",
71 $inherits ? "checked" : "", $text{'edit_from'};
72 print "<select name=inherits>\n";
74 next if ($c eq $dialer);
75 printf "<option value='%s' %s>%s\n",
76 $c->{'name'}, lc($inherits) eq lc($c->{'name'}) ? "selected":"",
77 &dialer_name($c->{'name'});
79 print "</select></td> </tr>\n";
82 print "<tr> <td colspan=4><hr></td> </tr>\n";
84 $modem = $dialer->{'values'}->{'modem'};
85 $dm = &get_default("Modem");
86 local $found = !$modem || $modem eq "/dev/modem";
87 print "<tr> <td><b>$text{'edit_serial'}</b></td>\n";
88 print "<td nowrap><select name=modem>\n";
89 printf "<option value='' %s>%s %s\n",
90 $modem ? "" : "selected",
91 $defs ? $text{'edit_none'} : $text{'edit_def'},
93 printf "<option value=/dev/modem %s>%s (%s)\n",
94 $modem eq "/dev/modem" ? "selected" : "", $text{'edit_modem'},
96 foreach $t (sort { "$a$b" =~ /^\/dev\/ttyS(\d+)\/dev\/ttyS(\d+)$/ ? $1 <=> $2 : 0 } glob("/dev/ttyS[0-9]*")) {
97 printf "<option value=%s %s>%s\n",
98 $t, $modem eq $t ? "selected" : "",
99 $t =~ /ttyS(\d+)$/ ? &text('edit_port', $1+1) : $t;
100 $found++ if ($modem eq $t);
102 printf "<option value=* %s>%s\n",
103 $found ? "" : "selected", $text{'edit_otherm'};
105 printf "<input name=otherm size=15 value='%s'></td>\n",
106 $found ? "" : $modem;
108 print &opt_input("Baud", $text{'edit_baud'}, 6);
111 print "<tr> <td valign=top><b>$text{'edit_init'}</b></td> <td colspan=3>\n";
112 for($i=1; $i<=9; $i++) {
113 printf "<input name=init_%s size=25 value='%s'>\n",
114 $i, $dialer->{'values'}->{"init".$i};
115 print "<br>\n" if (($i-1)%3 == 2);
117 print "</td> </tr>\n";
120 print &yes_no_input("Carrier Check", $text{'edit_carrier'}, 1);
121 print &yes_no_input("Abort on Busy", $text{'edit_busy'}, 0);
125 print &opt_input("Dial Attempts", $text{'edit_dial'}, 4);
126 print &yes_no_input("Abort on No Dialtone", $text{'edit_dialtone'}, 1);
130 print "<tr> <td colspan=4><hr></td> </tr>\n";
133 print &yes_no_input("Auto DNS", $text{'edit_dns'}, 1);
134 print &yes_no_input("Auto Reconnect", $text{'edit_reconnect'}, 1);
138 print &opt_input("Idle Seconds", $text{'edit_idle'}, 6);
141 print "</table></td></tr></table>\n";
143 print "<table width=100%><tr>\n";
145 print "<td><input type=submit value='$text{'create'}'></td>\n";
148 print "<td><input type=submit value='$text{'save'}'></td>\n";
149 print "<td align=right><input type=submit name=delete ",
150 "value='$text{'delete'}'></td>\n";
152 print "</tr></table></form>\n";
154 &ui_print_footer("", $text{'index_return'});
156 # opt_input(name, text, size, inputopts)
159 local $n = lc($_[0]);
160 local $v = $dialer->{'values'}->{$n};
161 local $rv = "<td><b>$_[1]</b></td> <td nowrap>\n";
162 $rv .= sprintf "<input type=radio name='${n}_def' value=1 %s> %s\n",
163 defined($v) ? "" : "checked",
164 $defs ? $text{'edit_none'} : $text{'default'};
165 $rv .= sprintf "<input type=radio name='${n}_def' value=0 %s>\n",
166 defined($v) ? "checked" : "";
167 $rv .= sprintf "<input $_[3] name='${n}' size=$_[2] value='%s'></td>\n", $v;
171 # yes_no_input(name, text, defmode)
174 local $n = lc($_[0]);
175 local $val = $dialer->{'values'}->{$n};
176 local $dval = &get_default($_[0]);
177 local $d = $dval =~ /on|yes|1/i ? $text{'edit_yd'} :
178 $dval =~ /off|no|0/i ? $text{'edit_nd'} :
179 $_[2] ? $text{'edit_yd'} : $text{'edit_nd'};
180 local $rv = "<td><b>$_[1]</b></td> <td>\n";
181 $rv .= sprintf "<input type=radio name='$n' value=1 %s> %s\n",
182 $val =~ /on|yes|1/i ? "checked" : "", $text{'yes'};
183 $rv .= sprintf "<input type=radio name='$n' value=0 %s> %s\n",
184 $val =~ /off|no|0/i ? "checked" : "", $text{'no'};
185 $rv .= sprintf "<input type=radio name='$n' value=-1 %s> %s</td>\n",
186 $val ? "" : "checked", $d;
193 return undef if ($defs);
195 local $pv = $parent->{'values'}->{lc($_[0])};
196 return $pv if (defined($pv));
198 return $ddialer->{'values'}->{lc($_[0])};