Gro├čes Update:
[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
18require 'CONFIG_ROOT/general-functions.pl';
19require "${General::swroot}/lang.pl";
20require "${General::swroot}/header.pl";
21
22my %cgiparams=();
23my %mainsettings=();
24my %checked=();
25my $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);
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') {
62 system ('/bin/touch', "${General::swroot}/main/refreshindex");
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';
70 system ('/bin/touch', "${General::swroot}/ppp/nobeeps");
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'};
79 $mainsettings{'REFRESHINDEX'} = $cgiparams{'REFRESHINDEX'};
80 &General::writehash("${General::swroot}/main/settings", \%mainsettings);
81 &Lang::reload($cgiparams{'lang'});
82 SAVE_ERROR:
83} else {
ac1cfefa
MT
84 if ($mainsettings{'WINDOWWITHHOSTNAME'}) {
85 $cgiparams{'WINDOWWITHHOSTNAME'} = $mainsettings{'WINDOWWITHHOSTNAME'};
86 } else {
87 $cgiparams{'WINDOWWITHHOSTNAME'} = 'off';
88 }
89
90 if ($mainsettings{'PPPUPDOWNBEEP'}) {
91 $cgiparams{'PPPUPDOWNBEEP'} = $mainsettings{'PPPUPDOWNBEEP'};
92 } else {
93 $cgiparams{'PPPUPDOWNBEEP'} = 'on';
94 }
95
96 if($mainsettings{'REFRESHINDEX'}) {
97 $cgiparams{'REFRESHINDEX'} = $mainsettings{'REFRESHINDEX'};
98 } else {
99 $cgiparams{'REFRESHINDEX'} = 'off';
100 }
101}
102
103# Default settings
104if ($cgiparams{'ACTION'} eq "$Lang::tr{'restore defaults'}")
105{
ac1cfefa
MT
106 $cgiparams{'WINDOWWITHHOSTNAME'} = 'off';
107 $cgiparams{'PPPUPDOWNBEEP'} = 'on';
108 $cgiparams{'REFRESHINDEX'} = 'off';
109}
110
ac1cfefa
MT
111$checked{'WINDOWWITHHOSTNAME'}{'off'} = '';
112$checked{'WINDOWWITHHOSTNAME'}{'on'} = '';
113$checked{'WINDOWWITHHOSTNAME'}{$cgiparams{'WINDOWWITHHOSTNAME'}} = "checked='checked'";
114
115$checked{'PPPUPDOWNBEEP'}{'off'} = '';
116$checked{'PPPUPDOWNBEEP'}{'on'} = '';
117$checked{'PPPUPDOWNBEEP'}{$cgiparams{'PPPUPDOWNBEEP'}} = "checked='checked'";
118
119$checked{'REFRESHINDEX'}{'off'} = '';
120$checked{'REFRESHINDEX'}{'on'} = '';
121$checked{'REFRESHINDEX'}{$cgiparams{'REFRESHINDEX'}} = "checked='checked'";
122
123&Header::openpage($Lang::tr{'gui settings'}, 1, '');
124&Header::openbigbox('100%', 'left', '', $errormessage);
125
126if ($errormessage) {
127 &Header::openbox('100%','left',$Lang::tr{'error messages'});
128 print "<font class='base'>${errormessage}&nbsp;</font>\n";
129 &Header::closebox();
130}
131
132&Header::openbox('100%','left',$Lang::tr{'gui settings'});
133
134print <<END
135<form method='post' action='$ENV{'SCRIPT_NAME'}'>
136<table width='100%'>
137<tr>
138 <td colspan='2'><p><b>$Lang::tr{'display'}</b></td>
139</tr>
ac1cfefa
MT
140<tr>
141 <td><input type='checkbox' name='WINDOWWITHHOSTNAME' $checked{'WINDOWWITHHOSTNAME'}{'on'} /></td>
142 <td>$Lang::tr{'display hostname in window title'}</td>
143</tr>
144<tr>
145 <td><input type='checkbox' name='REFRESHINDEX' $checked{'REFRESHINDEX'}{'on'} /></td>
146 <td>$Lang::tr{'refresh index page while connected'}</td>
147</tr>
148<tr>
149 <td>&nbsp;</td>
150 <td>$Lang::tr{'languagepurpose'}</td>
151</tr>
152<tr>
153 <td>&nbsp;</td>
154 <td><select name='lang'>
155END
156;
157
158my $id=0;
159open(FILE,"${General::swroot}/langs/list");
160while (<FILE>)
161{
162 my $lang='';
163 my $engname='';
164 my $natname='';
165 $id++;
166 chomp;
167 ($lang,$engname,$natname) = split (/:/, $_, 3);
168 print "<option value='$lang' ";
169 if ($lang =~ /$mainsettings{'LANGUAGE'}/)
170 {
171 print " selected='selected'";
172 }
173 print <<END
174>$engname ($natname)</option>
175END
176 ;
177}
178
179print <<END
180</select></td></tr>
181<tr>
182 <td colspan='2'><hr /><p><b>$Lang::tr{'sound'}</b></td>
183</tr>
184<tr>
185 <td><input type ='checkbox' name='PPPUPDOWNBEEP' $checked{'PPPUPDOWNBEEP'}{'on'} /></td>
186 <td>$Lang::tr{'beep when ppp connects or disconnects'}</td>
187</tr>
188<tr>
189 <td colspan='2'><hr /></td>
190</tr>
191</table>
192<div align='center'>
193<table width='80%'>
194<tr>
195 <td width='50%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'restore defaults'}' /></td>
196 <td width='50%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td>
197</tr>
198</table>
199</div>
200</form>
201END
202;
203&Header::closebox();
204&Header::closebigbox();
205&Header::closepage();
206
207
208