3 # Display all usermin modules and the config for one
5 require './usermin-lib.pl';
7 &header($text{'configs_title2'}, "");
8 &get_usermin_miniserv_config(\%miniserv);
10 if (-r "$miniserv{'root'}/$in{'mod'}/config.info") {
11 # Display config form for the module
12 %minfo = &get_usermin_module_info($in{'mod'});
14 print "<form action=\"save_configs.cgi\">\n";
15 print "<input type=hidden name=mod value=\"$in{'mod'}\">\n";
16 print "<table border>\n";
17 print "<tr $tb> <td><b>",&text('config_header', $minfo{'desc'}),
19 print "<tr $cb> <td><table width=100%>\n";
20 &read_file("$config{'usermin_dir'}/$in{'mod'}/config", \%config);
22 # Use config.info to create config inputs
23 &read_file("$miniserv{'root'}/$in{'mod'}/config.info",
24 \%info, \@info_order);
26 foreach $o (@lang_order_list) {
27 &read_file("$miniserv{'root'}/$in{'mod'}/config.info.$o",
28 \%info, \@info_order);
30 @info_order = &unique(@info_order);
32 foreach $c (@info_order) {
33 @p = split(/,/, $info{$c});
34 @ep = split(/,/, $einfo{$c});
35 if (scalar(@ep) > scalar(@p)) {
36 push(@p, @ep[scalar(@p) .. @ep-1]);
39 print "<tr><td colspan=3 $tb>\n" ;
40 print "\t<b>" . $p[0] . "</b>\n</td></tr>\n" ;
43 print "<tr> <td valign=top><b>$p[0]</b></td>\n";
44 print "<td nowrap>\n";
45 $qw = $config{$c} =~ /'/ ? '"' : "'";
47 $size = $p[2] ? "size=$p[2]" : "size=40";
48 $max = $p[3] ? "maxlength=$p[3]" : "";
49 print "<input name=\"$c\" $size $max value=$qw$config{$c}$qw>\n";
52 for($i=2; $i<@p; $i++) {
53 $p[$i] =~ /^(\S*)\-(.*)$/;
54 printf "<input type=radio name=\"$c\" value='$1' %s>\n",
55 $config{$c} eq $1 ? "checked" : "";
56 print "$2 \n";
61 map { $sel{$_}++ } split(/,/, $config{$c});
62 print "<select name=\"$c\" size=4 multiple>\n";
63 for($i=2; $i<@p; $i++) {
64 $p[$i] =~ /^(\S+)\-(.*)$/;
65 printf "<option value=\"$1\" %s>$2\n",
66 $sel{$1} ? "selected" : "";
71 $none = $p[2] ? $p[2] : $text{'config_none'};
72 printf "<input type=radio name=\"%s_none\" value=1 %s> $none\n",
73 $c, $config{$c} eq "" ? "checked" : "";
74 print " \n";
75 printf "<input type=radio name=\"%s_none\" value=0 %s>\n",
76 $c, $config{$c} eq "" ? "" : "checked";
77 print "<input name=\"$c\" size=20 value=$qw$config{$c}$qw>\n";
80 print "<select name=\"$c\">\n";
81 for($i=2; $i<@p; $i++) {
82 $p[$i] =~ /^(\S+)\-(.*)$/;
83 printf "<option value=\"$1\" %s>$2\n",
84 $config{$c} eq $1 ? "selected" : "";
91 "<input type=radio name=${c}_def value=1 %s>$p[2]\n",
92 $config{$c} eq "" ? "checked" : "";
93 printf "<input type=radio name=${c}_def value=0 %s>\n",
94 $config{$c} eq "" ? "" : "checked";
96 print &unix_user_input($c, $config{$c});
101 "<input type=radio name=${c}_def value=1 %s>$p[2]\n",
102 $config{$c} eq "" ? "checked" : "";
103 printf "<input type=radio name=${c}_def value=0 %s>\n",
104 $config{$c} eq "" ? "" : "checked";
106 print &unix_group_input($c, $config{$c});
109 print "<input name=\"$c\" size=40 value=$qw$config{$c}$qw> ",
110 &file_chooser_button($c, 1);
113 print "<input name=\"$c\" size=40 value=$qw$config{$c}$qw> ",
114 &file_chooser_button($c, 0);
117 local $cols = $p[2] ? $p[2] : 40;
118 local $rows = $p[3] ? $p[3] : 5;
119 local $sp = $p[4] ? eval "\"$p[4]\"" : " ";
120 print "<textarea name=\"$c\" rows=$rows cols=$cols>",
121 join("\n", split(/$sp/, $config{$c})),
124 elsif ($p[1] == 10) {
125 local $fv = $config{$c};
126 for($i=2; $i<@p; $i++) {
127 $p[$i] =~ /^(\S*)\-(.*)$/;
128 printf "<input type=radio name=\"$c\" value=\"$1\" %s>\n",
129 $config{$c} eq $1 ? "checked" : "";
130 print "$2 \n";
131 $fv = undef if ($config{$c} eq $1);
133 printf "<input type=radio name=\"$c\" value=free %s>\n",
134 $fv ? "checked" : "";
135 print "<input name=\"${c}_free\" value='$fv'>\n";
137 print "</td> </tr>\n";
139 print "</table></td></tr></table>\n";
140 print "<input type=submit value=\"$text{'save'}\"></form>\n";
143 if (-r "$miniserv{'root'}/$in{'mod'}/uconfig.info") {
144 # Display default user config form for the module
145 %minfo = &get_usermin_module_info($in{'mod'});
147 print "<form action=\"save_uconfigs.cgi\">\n";
148 print "<input type=hidden name=mod value=\"$in{'mod'}\">\n";
149 print "<table border>\n";
150 print "<tr $tb> <td><b>",&text('configs_uheader', $minfo{'desc'}),
152 print "<tr $cb> <td><table width=100%>\n";
153 &read_file("$miniserv{'root'}/$in{'mod'}/defaultuconfig", \%uconfig);
154 &read_file("$config{'usermin_dir'}/$in{'mod'}/uconfig", \%uconfig);
156 # Use config.info to create config inputs
157 &read_file("$miniserv{'root'}/$in{'mod'}/uconfig.info",
158 \%uinfo, \@uinfo_order);
160 &read_file("$miniserv{'root'}/$in{'mod'}/uconfig.info.$current_lang",
161 \%uinfo, \@uinfo_order);
162 @uinfo_order = &unique(@uinfo_order);
164 foreach $c (@uinfo_order) {
165 @p = split(/,/, $uinfo{$c});
166 @ep = split(/,/, $einfo{$c});
167 if (scalar(@ep) > scalar(@p)) {
168 push(@p, @ep[scalar(@p) .. @ep-1]);
171 print "<tr><td colspan=3 $tb>\n" ;
172 print "\t<b>" . $p[0] . "</b>\n</td></tr>\n" ;
175 print "<tr> <td valign=top><b>$p[0]</b></td>\n";
176 print "<td nowrap>\n";
177 $qw = $uconfig{$c} =~ /'/ ? '"' : "'";
179 $size = $p[2] ? "size=$p[2]" : "size=40";
180 $max = $p[3] ? "maxlength=$p[3]" : "";
181 print "<input name=\"$c\" $size $max value=$qw$uconfig{$c}$qw>\n";
184 for($i=2; $i<@p; $i++) {
185 $p[$i] =~ /^(\S*)\-(.*)$/;
186 printf "<input type=radio name=\"$c\" value='$1' %s>\n",
187 $uconfig{$c} eq $1 ? "checked" : "";
188 print "$2 \n";
193 map { $sel{$_}++ } split(/,/, $uconfig{$c});
194 print "<select name=\"$c\" size=4 multiple>\n";
195 for($i=2; $i<@p; $i++) {
196 $p[$i] =~ /^(\S+)\-(.*)$/;
197 printf "<option value=\"$1\" %s>$2\n",
198 $sel{$1} ? "selected" : "";
203 $none = $p[2] ? $p[2] : $text{'config_none'};
204 printf "<input type=radio name=\"%s_none\" value=1 %s> $none\n",
205 $c, $uconfig{$c} eq "" ? "checked" : "";
206 print " \n";
207 printf "<input type=radio name=\"%s_none\" value=0 %s>\n",
208 $c, $uconfig{$c} eq "" ? "" : "checked";
209 print "<input name=\"$c\" size=20 value=$qw$uconfig{$c}$qw>\n";
212 print "<select name=\"$c\">\n";
213 for($i=2; $i<@p; $i++) {
214 $p[$i] =~ /^(\S+)\-(.*)$/;
215 printf "<option value=\"$1\" %s>$2\n",
216 $uconfig{$c} eq $1 ? "selected" : "";
223 "<input type=radio name=${c}_def value=1 %s>$p[2]\n",
224 $uconfig{$c} eq "" ? "checked" : "";
225 printf "<input type=radio name=${c}_def value=0 %s>\n",
226 $uconfig{$c} eq "" ? "" : "checked";
228 print &unix_user_input($c, $uconfig{$c});
233 "<input type=radio name=${c}_def value=1 %s>$p[2]\n",
234 $uconfig{$c} eq "" ? "checked" : "";
235 printf "<input type=radio name=${c}_def value=0 %s>\n",
236 $uconfig{$c} eq "" ? "" : "checked";
238 print &unix_group_input($c, $uconfig{$c});
241 print "<input name=\"$c\" size=40 value=$qw$uconfig{$c}$qw> ",
242 &file_chooser_button($c, 1);
245 print "<input name=\"$c\" size=40 value=$qw$uconfig{$c}$qw> ",
246 &file_chooser_button($c, 0);
249 local $cols = $p[2] ? $p[2] : 40;
250 local $rows = $p[3] ? $p[3] : 5;
251 print "<textarea name=\"$c\" rows=$rows cols=$cols>",
252 join("\n", split(/\s+/, $uconfig{$c})),
255 elsif ($p[1] == 10) {
256 local $fv = $uconfig{$c};
257 for($i=2; $i<@p; $i++) {
258 $p[$i] =~ /^(\S*)\-(.*)$/;
259 printf "<input type=radio name=\"$c\" value=$1 %s>\n",
260 $uconfig{$c} eq $1 ? "checked" : "";
261 print "$2 \n";
262 $fv = undef if ($uconfig{$c} eq $1);
264 printf "<input type=radio name=\"$c\" value=free %s>\n",
265 $fv ? "checked" : "";
266 print "<input name=\"${c}_free\" value='$fv'>\n";
268 print "</td> </tr>\n";
270 print "</table></td></tr></table>\n";
271 print "<input type=submit value=\"$text{'save'}\"></form>\n";
275 &footer("list_configs.cgi", $text{'configs_return'});