--- /dev/null
+#!/usr/bin/perl\r
+#\r
+# IPCop CGIs\r
+#\r
+# This code is distributed under the terms of the GPL\r
+#\r
+# (c) Bill Ward\r
+#\r
+# $Id: gui.cgi,v 1.2.2.17 2005/07/06 09:21:22 franck78 Exp $\r
+#\r
+\r
+use strict;\r
+\r
+# enable only the following on debugging purpose\r
+#use warnings;\r
+#use CGI::Carp 'fatalsToBrowser';\r
+\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+require "${General::swroot}/lang.pl";\r
+require "${General::swroot}/header.pl";\r
+\r
+my %cgiparams=();\r
+my %mainsettings=();\r
+my %checked=();\r
+my $errormessage='';\r
+\r
+\r
+$cgiparams{'JAVASCRIPT'} = 'off';\r
+$cgiparams{'WINDOWWITHHOSTNAME'} = 'off';\r
+$cgiparams{'REFRESHINDEX'} = 'off';\r
+$cgiparams{'ACTION'} = '';\r
+&Header::getcgihash(\%cgiparams);\r
+\r
+&Header::showhttpheaders();\r
+&General::readhash("${General::swroot}/main/settings",\%mainsettings);\r
+if ($cgiparams{'ACTION'} eq "$Lang::tr{'save'}")\r
+{\r
+ open(FILE,"${General::swroot}/langs/list");\r
+ my $found=0;\r
+ while (<FILE>)\r
+ {\r
+ my $lang='';\r
+ my $engname='';\r
+ my $natname='';\r
+ chomp;\r
+ ($lang,$engname,$natname) = split (/:/, $_,3);\r
+ if ($cgiparams{'lang'} eq $lang)\r
+ {\r
+ $found=1;\r
+ }\r
+ }\r
+ close (FILE);\r
+ if ( $found == 0 )\r
+ {\r
+ $errormessage="$errormessage<P>$Lang::tr{'invalid input'}";\r
+ goto SAVE_ERROR;\r
+ }\r
+\r
+ if ($cgiparams{'JAVASCRIPT'} !~ /^(on|off)$/) {\r
+ $errormessage = $Lang::tr{'invalid input'};\r
+ goto SAVE_ERROR;\r
+ } \r
+\r
+ # Set flag if index page is to refresh whilst ppp is up.\r
+ # Default is NO refresh.\r
+ if ($cgiparams{'REFRESHINDEX'} ne 'off') {\r
+ system ('/bin/touch', "${General::swroot}/main/refreshindex");\r
+ } else {\r
+ unlink "${General::swroot}/main/refreshindex";\r
+ }\r
+\r
+ # Beep on ip-up or ip-down. Default is ON.\r
+ if ($cgiparams{'PPPUPDOWNBEEP'} ne 'on') {\r
+ $cgiparams{'PPPUPDOWNBEEP'} = 'off';\r
+ system ('/bin/touch', "${General::swroot}/ppp/nobeeps");\r
+ } else {\r
+ unlink "${General::swroot}/ppp/nobeeps";\r
+ }\r
+\r
+ # write cgi vars to the file.\r
+ $mainsettings{'LANGUAGE'} = $cgiparams{'lang'};\r
+ $mainsettings{'JAVASCRIPT'} = $cgiparams{'JAVASCRIPT'};\r
+ $mainsettings{'WINDOWWITHHOSTNAME'} = $cgiparams{'WINDOWWITHHOSTNAME'};\r
+ $mainsettings{'PPPUPDOWNBEEP'} = $cgiparams{'PPPUPDOWNBEEP'};\r
+ $mainsettings{'REFRESHINDEX'} = $cgiparams{'REFRESHINDEX'};\r
+ &General::writehash("${General::swroot}/main/settings", \%mainsettings);\r
+ &Lang::reload($cgiparams{'lang'});\r
+ SAVE_ERROR:\r
+} else {\r
+ if ($mainsettings{'JAVASCRIPT'}) {\r
+ $cgiparams{'JAVASCRIPT'} = $mainsettings{'JAVASCRIPT'};\r
+ } else {\r
+ $cgiparams{'JAVASCRIPT'} = 'on';\r
+ }\r
+\r
+ if ($mainsettings{'WINDOWWITHHOSTNAME'}) {\r
+ $cgiparams{'WINDOWWITHHOSTNAME'} = $mainsettings{'WINDOWWITHHOSTNAME'};\r
+ } else {\r
+ $cgiparams{'WINDOWWITHHOSTNAME'} = 'off';\r
+ }\r
+\r
+ if ($mainsettings{'PPPUPDOWNBEEP'}) {\r
+ $cgiparams{'PPPUPDOWNBEEP'} = $mainsettings{'PPPUPDOWNBEEP'};\r
+ } else {\r
+ $cgiparams{'PPPUPDOWNBEEP'} = 'on';\r
+ }\r
+\r
+ if($mainsettings{'REFRESHINDEX'}) {\r
+ $cgiparams{'REFRESHINDEX'} = $mainsettings{'REFRESHINDEX'};\r
+ } else {\r
+ $cgiparams{'REFRESHINDEX'} = 'off';\r
+ }\r
+}\r
+\r
+# Default settings\r
+if ($cgiparams{'ACTION'} eq "$Lang::tr{'restore defaults'}")\r
+{\r
+ $cgiparams{'JAVASCRIPT'} = 'on';\r
+ $cgiparams{'WINDOWWITHHOSTNAME'} = 'off';\r
+ $cgiparams{'PPPUPDOWNBEEP'} = 'on';\r
+ $cgiparams{'REFRESHINDEX'} = 'off';\r
+}\r
+\r
+$checked{'JAVASCRIPT'}{'off'} = '';\r
+$checked{'JAVASCRIPT'}{'on'} = '';\r
+$checked{'JAVASCRIPT'}{$cgiparams{'JAVASCRIPT'}} = "checked='checked'";\r
+\r
+$checked{'WINDOWWITHHOSTNAME'}{'off'} = '';\r
+$checked{'WINDOWWITHHOSTNAME'}{'on'} = '';\r
+$checked{'WINDOWWITHHOSTNAME'}{$cgiparams{'WINDOWWITHHOSTNAME'}} = "checked='checked'";\r
+\r
+$checked{'PPPUPDOWNBEEP'}{'off'} = '';\r
+$checked{'PPPUPDOWNBEEP'}{'on'} = '';\r
+$checked{'PPPUPDOWNBEEP'}{$cgiparams{'PPPUPDOWNBEEP'}} = "checked='checked'";\r
+\r
+$checked{'REFRESHINDEX'}{'off'} = '';\r
+$checked{'REFRESHINDEX'}{'on'} = '';\r
+$checked{'REFRESHINDEX'}{$cgiparams{'REFRESHINDEX'}} = "checked='checked'";\r
+\r
+&Header::openpage($Lang::tr{'gui settings'}, 1, '');\r
+&Header::openbigbox('100%', 'left', '', $errormessage);\r
+\r
+if ($errormessage) {\r
+ &Header::openbox('100%','left',$Lang::tr{'error messages'});\r
+ print "<font class='base'>${errormessage} </font>\n";\r
+ &Header::closebox();\r
+}\r
+\r
+&Header::openbox('100%','left',$Lang::tr{'gui settings'});\r
+\r
+print <<END\r
+<form method='post' action='$ENV{'SCRIPT_NAME'}'>\r
+<table width='100%'>\r
+<tr>\r
+ <td colspan='2'><p><b>$Lang::tr{'display'}</b></td>\r
+</tr>\r
+<tr>\r
+ <td><input type='checkbox' name='JAVASCRIPT' $checked{'JAVASCRIPT'}{'on'} />\r
+ <td width='100%'>$Lang::tr{'enable javascript'}</td>\r
+</tr>\r
+<tr>\r
+ <td><input type='checkbox' name='WINDOWWITHHOSTNAME' $checked{'WINDOWWITHHOSTNAME'}{'on'} /></td>\r
+ <td>$Lang::tr{'display hostname in window title'}</td>\r
+</tr>\r
+<tr>\r
+ <td><input type='checkbox' name='REFRESHINDEX' $checked{'REFRESHINDEX'}{'on'} /></td>\r
+ <td>$Lang::tr{'refresh index page while connected'}</td>\r
+</tr>\r
+<tr>\r
+ <td> </td>\r
+ <td>$Lang::tr{'languagepurpose'}</td>\r
+</tr>\r
+<tr>\r
+ <td> </td>\r
+ <td><select name='lang'>\r
+END\r
+;\r
+\r
+my $id=0;\r
+open(FILE,"${General::swroot}/langs/list");\r
+while (<FILE>)\r
+{\r
+ my $lang='';\r
+ my $engname='';\r
+ my $natname='';\r
+ $id++;\r
+ chomp;\r
+ ($lang,$engname,$natname) = split (/:/, $_, 3);\r
+ print "<option value='$lang' ";\r
+ if ($lang =~ /$mainsettings{'LANGUAGE'}/)\r
+ {\r
+ print " selected='selected'";\r
+ }\r
+ print <<END\r
+>$engname ($natname)</option>\r
+END\r
+ ;\r
+}\r
+\r
+print <<END\r
+</select></td></tr>\r
+<tr>\r
+ <td colspan='2'><hr /><p><b>$Lang::tr{'sound'}</b></td>\r
+</tr>\r
+<tr>\r
+ <td><input type ='checkbox' name='PPPUPDOWNBEEP' $checked{'PPPUPDOWNBEEP'}{'on'} /></td>\r
+ <td>$Lang::tr{'beep when ppp connects or disconnects'}</td>\r
+</tr>\r
+<tr>\r
+ <td colspan='2'><hr /></td>\r
+</tr>\r
+</table>\r
+<div align='center'>\r
+<table width='80%'>\r
+<tr>\r
+ <td width='50%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'restore defaults'}' /></td>\r
+ <td width='50%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td>\r
+</tr>\r
+</table>\r
+</div>\r
+</form>\r
+END\r
+;\r
+&Header::closebox();\r
+&Header::closebigbox();\r
+&Header::closepage();\r
+\r
+\r
+\r