]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blob - html/cgi-bin/gui.cgi
SMP-Config angepasst.. CGIs usw. wurden im Windoof-Format gespeichert... muss noch...
[people/pmueller/ipfire-2.x.git] / html / cgi-bin / gui.cgi
1 #!/usr/bin/perl
2 #
3 # IPCop CGIs
4 #
5 # This code is distributed under the terms of the GPL
6 #
7 # (c) Bill Ward
8 #
9 # $Id: gui.cgi,v 1.2.2.17 2005/07/06 09:21:22 franck78 Exp $
10 #
11
12 use strict;
13
14 # enable only the following on debugging purpose
15 #use warnings;
16 #use CGI::Carp 'fatalsToBrowser';
17
18 require 'CONFIG_ROOT/general-functions.pl';
19 require "${General::swroot}/lang.pl";
20 require "${General::swroot}/header.pl";
21
22 my %cgiparams=();
23 my %mainsettings=();
24 my %checked=();
25 my $errormessage='';
26
27
28 $cgiparams{'JAVASCRIPT'} = 'off';
29 $cgiparams{'WINDOWWITHHOSTNAME'} = 'off';
30 $cgiparams{'REFRESHINDEX'} = 'off';
31 $cgiparams{'ACTION'} = '';
32 &Header::getcgihash(\%cgiparams);
33
34 &Header::showhttpheaders();
35 &General::readhash("${General::swroot}/main/settings",\%mainsettings);
36 if ($cgiparams{'ACTION'} eq "$Lang::tr{'save'}")
37 {
38 open(FILE,"${General::swroot}/langs/list");
39 my $found=0;
40 while (<FILE>)
41 {
42 my $lang='';
43 my $engname='';
44 my $natname='';
45 chomp;
46 ($lang,$engname,$natname) = split (/:/, $_,3);
47 if ($cgiparams{'lang'} eq $lang)
48 {
49 $found=1;
50 }
51 }
52 close (FILE);
53 if ( $found == 0 )
54 {
55 $errormessage="$errormessage<P>$Lang::tr{'invalid input'}";
56 goto SAVE_ERROR;
57 }
58
59 if ($cgiparams{'JAVASCRIPT'} !~ /^(on|off)$/) {
60 $errormessage = $Lang::tr{'invalid input'};
61 goto SAVE_ERROR;
62 }
63
64 # Set flag if index page is to refresh whilst ppp is up.
65 # Default is NO refresh.
66 if ($cgiparams{'REFRESHINDEX'} ne 'off') {
67 system ('/bin/touch', "${General::swroot}/main/refreshindex");
68 } else {
69 unlink "${General::swroot}/main/refreshindex";
70 }
71
72 # Beep on ip-up or ip-down. Default is ON.
73 if ($cgiparams{'PPPUPDOWNBEEP'} ne 'on') {
74 $cgiparams{'PPPUPDOWNBEEP'} = 'off';
75 system ('/bin/touch', "${General::swroot}/ppp/nobeeps");
76 } else {
77 unlink "${General::swroot}/ppp/nobeeps";
78 }
79
80 # write cgi vars to the file.
81 $mainsettings{'LANGUAGE'} = $cgiparams{'lang'};
82 $mainsettings{'JAVASCRIPT'} = $cgiparams{'JAVASCRIPT'};
83 $mainsettings{'WINDOWWITHHOSTNAME'} = $cgiparams{'WINDOWWITHHOSTNAME'};
84 $mainsettings{'PPPUPDOWNBEEP'} = $cgiparams{'PPPUPDOWNBEEP'};
85 $mainsettings{'REFRESHINDEX'} = $cgiparams{'REFRESHINDEX'};
86 &General::writehash("${General::swroot}/main/settings", \%mainsettings);
87 &Lang::reload($cgiparams{'lang'});
88 SAVE_ERROR:
89 } else {
90 if ($mainsettings{'JAVASCRIPT'}) {
91 $cgiparams{'JAVASCRIPT'} = $mainsettings{'JAVASCRIPT'};
92 } else {
93 $cgiparams{'JAVASCRIPT'} = 'on';
94 }
95
96 if ($mainsettings{'WINDOWWITHHOSTNAME'}) {
97 $cgiparams{'WINDOWWITHHOSTNAME'} = $mainsettings{'WINDOWWITHHOSTNAME'};
98 } else {
99 $cgiparams{'WINDOWWITHHOSTNAME'} = 'off';
100 }
101
102 if ($mainsettings{'PPPUPDOWNBEEP'}) {
103 $cgiparams{'PPPUPDOWNBEEP'} = $mainsettings{'PPPUPDOWNBEEP'};
104 } else {
105 $cgiparams{'PPPUPDOWNBEEP'} = 'on';
106 }
107
108 if($mainsettings{'REFRESHINDEX'}) {
109 $cgiparams{'REFRESHINDEX'} = $mainsettings{'REFRESHINDEX'};
110 } else {
111 $cgiparams{'REFRESHINDEX'} = 'off';
112 }
113 }
114
115 # Default settings
116 if ($cgiparams{'ACTION'} eq "$Lang::tr{'restore defaults'}")
117 {
118 $cgiparams{'JAVASCRIPT'} = 'on';
119 $cgiparams{'WINDOWWITHHOSTNAME'} = 'off';
120 $cgiparams{'PPPUPDOWNBEEP'} = 'on';
121 $cgiparams{'REFRESHINDEX'} = 'off';
122 }
123
124 $checked{'JAVASCRIPT'}{'off'} = '';
125 $checked{'JAVASCRIPT'}{'on'} = '';
126 $checked{'JAVASCRIPT'}{$cgiparams{'JAVASCRIPT'}} = "checked='checked'";
127
128 $checked{'WINDOWWITHHOSTNAME'}{'off'} = '';
129 $checked{'WINDOWWITHHOSTNAME'}{'on'} = '';
130 $checked{'WINDOWWITHHOSTNAME'}{$cgiparams{'WINDOWWITHHOSTNAME'}} = "checked='checked'";
131
132 $checked{'PPPUPDOWNBEEP'}{'off'} = '';
133 $checked{'PPPUPDOWNBEEP'}{'on'} = '';
134 $checked{'PPPUPDOWNBEEP'}{$cgiparams{'PPPUPDOWNBEEP'}} = "checked='checked'";
135
136 $checked{'REFRESHINDEX'}{'off'} = '';
137 $checked{'REFRESHINDEX'}{'on'} = '';
138 $checked{'REFRESHINDEX'}{$cgiparams{'REFRESHINDEX'}} = "checked='checked'";
139
140 &Header::openpage($Lang::tr{'gui settings'}, 1, '');
141 &Header::openbigbox('100%', 'left', '', $errormessage);
142
143 if ($errormessage) {
144 &Header::openbox('100%','left',$Lang::tr{'error messages'});
145 print "<font class='base'>${errormessage}&nbsp;</font>\n";
146 &Header::closebox();
147 }
148
149 &Header::openbox('100%','left',$Lang::tr{'gui settings'});
150
151 print <<END
152 <form method='post' action='$ENV{'SCRIPT_NAME'}'>
153 <table width='100%'>
154 <tr>
155 <td colspan='2'><p><b>$Lang::tr{'display'}</b></td>
156 </tr>
157 <tr>
158 <td><input type='checkbox' name='JAVASCRIPT' $checked{'JAVASCRIPT'}{'on'} />
159 <td width='100%'>$Lang::tr{'enable javascript'}</td>
160 </tr>
161 <tr>
162 <td><input type='checkbox' name='WINDOWWITHHOSTNAME' $checked{'WINDOWWITHHOSTNAME'}{'on'} /></td>
163 <td>$Lang::tr{'display hostname in window title'}</td>
164 </tr>
165 <tr>
166 <td><input type='checkbox' name='REFRESHINDEX' $checked{'REFRESHINDEX'}{'on'} /></td>
167 <td>$Lang::tr{'refresh index page while connected'}</td>
168 </tr>
169 <tr>
170 <td>&nbsp;</td>
171 <td>$Lang::tr{'languagepurpose'}</td>
172 </tr>
173 <tr>
174 <td>&nbsp;</td>
175 <td><select name='lang'>
176 END
177 ;
178
179 my $id=0;
180 open(FILE,"${General::swroot}/langs/list");
181 while (<FILE>)
182 {
183 my $lang='';
184 my $engname='';
185 my $natname='';
186 $id++;
187 chomp;
188 ($lang,$engname,$natname) = split (/:/, $_, 3);
189 print "<option value='$lang' ";
190 if ($lang =~ /$mainsettings{'LANGUAGE'}/)
191 {
192 print " selected='selected'";
193 }
194 print <<END
195 >$engname ($natname)</option>
196 END
197 ;
198 }
199
200 print <<END
201 </select></td></tr>
202 <tr>
203 <td colspan='2'><hr /><p><b>$Lang::tr{'sound'}</b></td>
204 </tr>
205 <tr>
206 <td><input type ='checkbox' name='PPPUPDOWNBEEP' $checked{'PPPUPDOWNBEEP'}{'on'} /></td>
207 <td>$Lang::tr{'beep when ppp connects or disconnects'}</td>
208 </tr>
209 <tr>
210 <td colspan='2'><hr /></td>
211 </tr>
212 </table>
213 <div align='center'>
214 <table width='80%'>
215 <tr>
216 <td width='50%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'restore defaults'}' /></td>
217 <td width='50%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td>
218 </tr>
219 </table>
220 </div>
221 </form>
222 END
223 ;
224 &Header::closebox();
225 &Header::closebigbox();
226 &Header::closepage();
227
228
229