]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/blame - html/cgi-bin/gui.cgi
Mal richtig schnell ein kleines Python-Script geschrieben, welches die Paket-Datenban...
[people/teissler/ipfire-2.x.git] / html / cgi-bin / gui.cgi
CommitLineData
ac1cfefa
MT
1#!/usr/bin/perl
2#
78331e30 3# IPFire CGIs
ac1cfefa
MT
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
12use strict;
13
14# enable only the following on debugging purpose
15#use warnings;
16#use CGI::Carp 'fatalsToBrowser';
17
986e08d9 18require '/var/ipfire/general-functions.pl';
ac1cfefa
MT
19require "${General::swroot}/lang.pl";
20require "${General::swroot}/header.pl";
21
22my %cgiparams=();
23my %mainsettings=();
24my %checked=();
25my $errormessage='';
26
27
bd365f3a 28$cgiparams{'FX'} = 'off';
ac1cfefa
MT
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);
36if ($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
ac1cfefa
MT
59 # Set flag if index page is to refresh whilst ppp is up.
60 # Default is NO refresh.
61 if ($cgiparams{'REFRESHINDEX'} ne 'off') {
9833e7d8 62 system ('/usr/bin/touch', "${General::swroot}/main/refreshindex");
ac1cfefa
MT
63 } else {
64 unlink "${General::swroot}/main/refreshindex";
65 }
66
67 # Beep on ip-up or ip-down. Default is ON.
68 if ($cgiparams{'PPPUPDOWNBEEP'} ne 'on') {
69 $cgiparams{'PPPUPDOWNBEEP'} = 'off';
9833e7d8 70 system ('/usr/bin/touch', "${General::swroot}/ppp/nobeeps");
ac1cfefa
MT
71 } else {
72 unlink "${General::swroot}/ppp/nobeeps";
73 }
74
75 # write cgi vars to the file.
76 $mainsettings{'LANGUAGE'} = $cgiparams{'lang'};
ac1cfefa
MT
77 $mainsettings{'WINDOWWITHHOSTNAME'} = $cgiparams{'WINDOWWITHHOSTNAME'};
78 $mainsettings{'PPPUPDOWNBEEP'} = $cgiparams{'PPPUPDOWNBEEP'};
bd365f3a 79 $mainsettings{'FX'} = $cgiparams{'FX'};
f8e080ef 80 $mainsettings{'THEME'} = $cgiparams{'theme'};
ac1cfefa
MT
81 $mainsettings{'REFRESHINDEX'} = $cgiparams{'REFRESHINDEX'};
82 &General::writehash("${General::swroot}/main/settings", \%mainsettings);
83 &Lang::reload($cgiparams{'lang'});
84 SAVE_ERROR:
85} else {
ac1cfefa
MT
86 if ($mainsettings{'WINDOWWITHHOSTNAME'}) {
87 $cgiparams{'WINDOWWITHHOSTNAME'} = $mainsettings{'WINDOWWITHHOSTNAME'};
88 } else {
89 $cgiparams{'WINDOWWITHHOSTNAME'} = 'off';
90 }
91
92 if ($mainsettings{'PPPUPDOWNBEEP'}) {
93 $cgiparams{'PPPUPDOWNBEEP'} = $mainsettings{'PPPUPDOWNBEEP'};
94 } else {
95 $cgiparams{'PPPUPDOWNBEEP'} = 'on';
96 }
97
bd365f3a
MT
98 if ($mainsettings{'FX'}) {
99 $cgiparams{'FX'} = $mainsettings{'FX'};
100 } else {
101 $cgiparams{'FX'} = 'on';
102 }
103
f8e080ef
MT
104 if ($mainsettings{'THEME'}) {
105 $cgiparams{'THEME'} = $mainsettings{'THEME'};
106 } else {
107 $cgiparams{'THEME'} = 'ipfire';
108 }
109
ac1cfefa
MT
110 if($mainsettings{'REFRESHINDEX'}) {
111 $cgiparams{'REFRESHINDEX'} = $mainsettings{'REFRESHINDEX'};
112 } else {
113 $cgiparams{'REFRESHINDEX'} = 'off';
114 }
115}
116
117# Default settings
118if ($cgiparams{'ACTION'} eq "$Lang::tr{'restore defaults'}")
119{
ac1cfefa
MT
120 $cgiparams{'WINDOWWITHHOSTNAME'} = 'off';
121 $cgiparams{'PPPUPDOWNBEEP'} = 'on';
122 $cgiparams{'REFRESHINDEX'} = 'off';
bd365f3a 123 $cgiparams{'FX'} = 'on';
f8e080ef 124 $cgiparams{'THEME'} = 'ipfire';
ac1cfefa
MT
125}
126
ac1cfefa
MT
127$checked{'WINDOWWITHHOSTNAME'}{'off'} = '';
128$checked{'WINDOWWITHHOSTNAME'}{'on'} = '';
129$checked{'WINDOWWITHHOSTNAME'}{$cgiparams{'WINDOWWITHHOSTNAME'}} = "checked='checked'";
130
131$checked{'PPPUPDOWNBEEP'}{'off'} = '';
132$checked{'PPPUPDOWNBEEP'}{'on'} = '';
133$checked{'PPPUPDOWNBEEP'}{$cgiparams{'PPPUPDOWNBEEP'}} = "checked='checked'";
134
135$checked{'REFRESHINDEX'}{'off'} = '';
136$checked{'REFRESHINDEX'}{'on'} = '';
137$checked{'REFRESHINDEX'}{$cgiparams{'REFRESHINDEX'}} = "checked='checked'";
138
bd365f3a
MT
139$checked{'FX'}{'off'} = '';
140$checked{'FX'}{'on'} = '';
141$checked{'FX'}{$cgiparams{'FX'}} = "checked='checked'";
142
ac1cfefa
MT
143&Header::openpage($Lang::tr{'gui settings'}, 1, '');
144&Header::openbigbox('100%', 'left', '', $errormessage);
145
146if ($errormessage) {
147 &Header::openbox('100%','left',$Lang::tr{'error messages'});
148 print "<font class='base'>${errormessage}&nbsp;</font>\n";
149 &Header::closebox();
150}
151
152&Header::openbox('100%','left',$Lang::tr{'gui settings'});
153
154print <<END
155<form method='post' action='$ENV{'SCRIPT_NAME'}'>
156<table width='100%'>
157<tr>
158 <td colspan='2'><p><b>$Lang::tr{'display'}</b></td>
159</tr>
bd365f3a
MT
160<tr>
161 <td><input type='checkbox' name='FX' $checked{'FX'}{'on'} /></td>
162 <td>$Lang::tr{'display webinterface effects'}</td>
163</tr>
ac1cfefa
MT
164<tr>
165 <td><input type='checkbox' name='WINDOWWITHHOSTNAME' $checked{'WINDOWWITHHOSTNAME'}{'on'} /></td>
166 <td>$Lang::tr{'display hostname in window title'}</td>
167</tr>
168<tr>
169 <td><input type='checkbox' name='REFRESHINDEX' $checked{'REFRESHINDEX'}{'on'} /></td>
170 <td>$Lang::tr{'refresh index page while connected'}</td>
171</tr>
172<tr>
173 <td>&nbsp;</td>
174 <td>$Lang::tr{'languagepurpose'}</td>
175</tr>
176<tr>
177 <td>&nbsp;</td>
178 <td><select name='lang'>
179END
180;
181
182my $id=0;
183open(FILE,"${General::swroot}/langs/list");
184while (<FILE>)
185{
186 my $lang='';
187 my $engname='';
188 my $natname='';
189 $id++;
190 chomp;
191 ($lang,$engname,$natname) = split (/:/, $_, 3);
192 print "<option value='$lang' ";
193 if ($lang =~ /$mainsettings{'LANGUAGE'}/)
194 {
195 print " selected='selected'";
196 }
197 print <<END
198>$engname ($natname)</option>
199END
200 ;
201}
202
f8e080ef
MT
203print <<END
204</select></td></tr>
205<tr>
206 <td colspan='2'><hr /><p><b>$Lang::tr{'theme'}</b></td>
207</tr>
208<tr>
209 <td>&nbsp;</td>
210 <td><select name='theme'>
211END
212;
213
214my $dir = "/srv/web/ipfire/html/themes";
215local *DH;
216my ($item, $file);
217my @files;
218
219opendir (DH, $dir);
220while ($file = readdir (DH)) {
221 next if ( $file =~ /^\./ );
222 push (@files, $file);
223}
224closedir (DH);
225
226foreach $item (sort (@files)) {
227 if ( "$mainsettings{'THEME'}" eq "$item" ) {
228 print "<option value='$item' selected='selected'>$item</option>\n";
229 } else {
230 print "<option value='$item'>$item</option>\n";
231 }
232}
233
ac1cfefa
MT
234print <<END
235</select></td></tr>
236<tr>
237 <td colspan='2'><hr /><p><b>$Lang::tr{'sound'}</b></td>
238</tr>
239<tr>
240 <td><input type ='checkbox' name='PPPUPDOWNBEEP' $checked{'PPPUPDOWNBEEP'}{'on'} /></td>
241 <td>$Lang::tr{'beep when ppp connects or disconnects'}</td>
242</tr>
243<tr>
244 <td colspan='2'><hr /></td>
245</tr>
246</table>
247<div align='center'>
248<table width='80%'>
249<tr>
250 <td width='50%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'restore defaults'}' /></td>
251 <td width='50%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td>
252</tr>
253</table>
254</div>
255</form>
256END
257;
258&Header::closebox();
259&Header::closebigbox();
260&Header::closepage();
261
262
263