]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/blobdiff - html/cgi-bin/gui.cgi
Drop "Extra Query" for Shutdown and Reboot from gui.cgi.
[people/teissler/ipfire-2.x.git] / html / cgi-bin / gui.cgi
index 319542878dab25e269b234da729bde7f2bba1f6e..80a059675a8b752228dd16f367156faee866c5c8 100644 (file)
-#!/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
+#!/usr/bin/perl
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+#                                                                             #
+# This program is free software: you can redistribute it and/or modify        #
+# it under the terms of the GNU General Public License as published by        #
+# the Free Software Foundation, either version 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+
+use strict;
+
+# enable only the following on debugging purpose
+#use warnings;
+#use CGI::Carp 'fatalsToBrowser';
+
+require '/var/ipfire/general-functions.pl';
+require "${General::swroot}/lang.pl";
+require "${General::swroot}/header.pl";
+
+my %cgiparams=();
+my %mainsettings=();
+my %checked=();
+my $errormessage='';
+
+
+$cgiparams{'SPEED'} = 'off';
+$cgiparams{'WINDOWWITHHOSTNAME'} = 'off';
+$cgiparams{'REFRESHINDEX'} = 'off';
+$cgiparams{'ACTION'} = '';
+&Header::getcgihash(\%cgiparams);
+
+&Header::showhttpheaders();
+&General::readhash("${General::swroot}/main/settings",\%mainsettings);
+if ($cgiparams{'ACTION'} eq "$Lang::tr{'save'}")
+{
+       open(FILE,"${General::swroot}/langs/list");
+       my $found=0;
+       while (<FILE>)
+       {
+               my $lang='';
+               my $engname='';
+               my $natname='';
+               chomp;
+               ($lang,$engname,$natname) = split (/:/, $_,3);
+               if ($cgiparams{'lang'} eq $lang)
+               {
+                       $found=1;
+               }
+       }
+       close (FILE);
+       if ( $found == 0 )
+       {
+               $errormessage="$errormessage<P>$Lang::tr{'invalid input'}";
+               goto SAVE_ERROR;
+       }
+
+        # Set flag if index page is to refresh whilst ppp is up.
+        # Default is NO refresh.
+        if ($cgiparams{'REFRESHINDEX'} ne 'off') {
+            system ('/usr/bin/touch', "${General::swroot}/main/refreshindex");
+        } else {
+            unlink "${General::swroot}/main/refreshindex";
+        }
+
+        # Beep on ip-up or ip-down. Default is ON.
+        if ($cgiparams{'PPPUPDOWNBEEP'} ne 'on') {
+            $cgiparams{'PPPUPDOWNBEEP'} = 'off';
+            system ('/usr/bin/touch', "${General::swroot}/ppp/nobeeps");
+        } else {
+            unlink "${General::swroot}/ppp/nobeeps";
+        }
+
+        # write cgi vars to the file.
+       $mainsettings{'LANGUAGE'} = $cgiparams{'lang'};
+       $mainsettings{'WINDOWWITHHOSTNAME'} = $cgiparams{'WINDOWWITHHOSTNAME'};
+       $mainsettings{'PPPUPDOWNBEEP'} = $cgiparams{'PPPUPDOWNBEEP'};
+       $mainsettings{'SPEED'} = $cgiparams{'SPEED'};
+       $mainsettings{'THEME'} = $cgiparams{'theme'};
+       $mainsettings{'REFRESHINDEX'} = $cgiparams{'REFRESHINDEX'};
+       &General::writehash("${General::swroot}/main/settings", \%mainsettings);
+       &Lang::reload($cgiparams{'lang'});
+       SAVE_ERROR:
+} else {
+       if ($mainsettings{'WINDOWWITHHOSTNAME'}) {
+               $cgiparams{'WINDOWWITHHOSTNAME'} = $mainsettings{'WINDOWWITHHOSTNAME'};
+       } else {
+               $cgiparams{'WINDOWWITHHOSTNAME'} = 'on';
+       }
+
+       if ($mainsettings{'PPPUPDOWNBEEP'}) {
+               $cgiparams{'PPPUPDOWNBEEP'} = $mainsettings{'PPPUPDOWNBEEP'};
+       } else {
+               $cgiparams{'PPPUPDOWNBEEP'} = 'on';
+       }
+
+       if ($mainsettings{'THEME'}) {
+               $cgiparams{'THEME'} = $mainsettings{'THEME'};
+       } else {
+               $cgiparams{'THEME'} = 'ipfire';
+       }
+
+       if($mainsettings{'REFRESHINDEX'}) {
+               $cgiparams{'REFRESHINDEX'} = $mainsettings{'REFRESHINDEX'};
+       } else {
+               $cgiparams{'REFRESHINDEX'} = 'off';
+       }
+       if($mainsettings{'SPEED'}) {
+               $cgiparams{'SPEED'} = $mainsettings{'SPEED'};
+       } else {
+       # if var is not defined it will be set to on because after installation var
+       # is not set and the speedmeter should be displayed, it can only be deactivated
+       # by manually setting the var to off
+               $cgiparams{'SPEED'} = 'on';
+       }
+}
+
+# Default settings
+if ($cgiparams{'ACTION'} eq "$Lang::tr{'restore defaults'}")
+{
+       $cgiparams{'WINDOWWITHHOSTNAME'} = 'on';
+       $cgiparams{'PPPUPDOWNBEEP'} = 'on';
+       $cgiparams{'REFRESHINDEX'} = 'off';
+       $cgiparams{'SPEED'} = 'on';
+       $cgiparams{'THEME'} = 'ipfire';
+}
+
+$checked{'WINDOWWITHHOSTNAME'}{'off'} = '';
+$checked{'WINDOWWITHHOSTNAME'}{'on'} = '';
+$checked{'WINDOWWITHHOSTNAME'}{$cgiparams{'WINDOWWITHHOSTNAME'}} = "checked='checked'";
+
+$checked{'PPPUPDOWNBEEP'}{'off'} = '';
+$checked{'PPPUPDOWNBEEP'}{'on'} = '';
+$checked{'PPPUPDOWNBEEP'}{$cgiparams{'PPPUPDOWNBEEP'}} = "checked='checked'";
+
+$checked{'REFRESHINDEX'}{'off'} = '';
+$checked{'REFRESHINDEX'}{'on'} = '';
+$checked{'REFRESHINDEX'}{$cgiparams{'REFRESHINDEX'}} = "checked='checked'";
+
+$checked{'SPEED'}{'off'} = '';
+$checked{'SPEED'}{'on'} = '';
+$checked{'SPEED'}{$cgiparams{'SPEED'}} = "checked='checked'";
+
+&Header::openpage($Lang::tr{'gui settings'}, 1, '');
+&Header::openbigbox('100%', 'left', '', $errormessage);
+
+if ($errormessage) {
+       &Header::openbox('100%','left',$Lang::tr{'error messages'});
+       print "<font class='base'>${errormessage}&nbsp;</font>\n";
+       &Header::closebox();
+}
+
+&Header::openbox('100%','left',$Lang::tr{'display'});
+
+print <<END
+<form method='post' action='$ENV{'SCRIPT_NAME'}'>
+<table width='100%'>
+<tr>
+    <td><input type='checkbox' name='WINDOWWITHHOSTNAME' $checked{'WINDOWWITHHOSTNAME'}{'on'} /></td>
+    <td>$Lang::tr{'display hostname in window title'}</td>
+</tr>
+<tr>
+    <td><input type='checkbox' name='REFRESHINDEX' $checked{'REFRESHINDEX'}{'on'} /></td>
+    <td>$Lang::tr{'refresh index page while connected'}</td>
+</tr>
+<tr>
+    <td><input type='checkbox' name='SPEED' $checked{'SPEED'}{'on'} /></td>
+    <td>$Lang::tr{'show ajax speedmeter in footer'}</td>
+</tr>
+<tr>
+    <td>&nbsp;</td>
+    <td>$Lang::tr{'languagepurpose'}</td>
+</tr>
+<tr>
+    <td>&nbsp;</td>
+    <td><select name='lang'>
+END
+;
+
+my $id=0;
+open(FILE,"${General::swroot}/langs/list");
+while (<FILE>)
+{
+       my $lang='';
+       my $engname='';
+       my $natname='';
+        $id++;
+        chomp;
+        ($lang,$engname,$natname) = split (/:/, $_, 3);
+       print "<option value='$lang' ";
+       if ($lang =~ /$mainsettings{'LANGUAGE'}/)
+       {
+               print " selected='selected'";
+       }
+       print <<END
+>$engname ($natname)</option>
+END
+       ;
+}
+
+print <<END
+</select></td></tr>
+</table>
+END
+;
+&Header::closebox();
+&Header::openbox('100%','left',$Lang::tr{'theme'});
+print<<END;
+<table>
+<tr>
+    <td>&nbsp;</td>
+    <td><select name='theme'>
+END
+;
+
+my $dir = "/srv/web/ipfire/html/themes";
+local *DH;
+my ($item, $file);
+my @files;
+
+# Foreach directory create am theme entry to be selected by user
+
+opendir (DH, $dir);
+while ($file = readdir (DH)) {
+       next if ( $file =~ /^\./ );
+       push (@files, $file);
+}
+closedir (DH);
+
+foreach $item (sort (@files)) {
+       if ( "$mainsettings{'THEME'}" eq "$item" ) {
+               print "<option value='$item' selected='selected'>$item</option>\n";
+       } else {
+               print "<option value='$item'>$item</option>\n";
+       }
+}
+
+print <<END
+</select></td></tr>
+</table>
+END
+;
+&Header::closebox();
+&Header::openbox('100%','left',$Lang::tr{'sound'});
+print <<END
+<tr>
+    <td><input type ='checkbox' name='PPPUPDOWNBEEP' $checked{'PPPUPDOWNBEEP'}{'on'} /></td>
+    <td>$Lang::tr{'beep when ppp connects or disconnects'}</td>
+</tr>
+<tr>
+    <td colspan='2'></td>
+</tr>
+</table>
+<div align='right'>
+<br>
+<table width='100%'>
+<tr>
+    <td width='90%' align='right'><input type='submit' name='ACTION' value='$Lang::tr{'restore defaults'}' /></td>
+    <td width='10%' align='right'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td>
+</tr>
+</table>
+</div>
+</form>
+END
+;
+&Header::closebox();
+&Header::closebigbox();
+&Header::closepage();
+
+
+