]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/blobdiff - html/cgi-bin/gui.cgi
git-svn-id: http://svn.ipfire.org/svn/ipfire/IPFire/source@16 ea5c0bd1-69bd-2848...
[people/teissler/ipfire-2.x.git] / html / cgi-bin / gui.cgi
diff --git a/html/cgi-bin/gui.cgi b/html/cgi-bin/gui.cgi
new file mode 100644 (file)
index 0000000..3195428
--- /dev/null
@@ -0,0 +1,229 @@
+#!/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}&nbsp;</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>&nbsp;</td>\r
+    <td>$Lang::tr{'languagepurpose'}</td>\r
+</tr>\r
+<tr>\r
+    <td>&nbsp;</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