public inbox for ipfire-scm@lists.ipfire.org
 help / color / mirror / Atom feed
* [git.ipfire.org] IPFire 2.x development tree branch, fifteen, updated. 9027a25d92afbbb4486c17deac66b4c439e80520
@ 2014-01-05 20:16 git
  0 siblings, 0 replies; only message in thread
From: git @ 2014-01-05 20:16 UTC (permalink / raw)
  To: ipfire-scm

[-- Attachment #1: Type: text/plain, Size: 83016 bytes --]

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "IPFire 2.x development tree".

The branch, fifteen has been updated
       via  9027a25d92afbbb4486c17deac66b4c439e80520 (commit)
       via  4234ca5d64f8e34c40ee48c58599f00cb3a15862 (commit)
       via  0051027b79220c17a8eb5e05dcf79e1549c94489 (commit)
       via  935f311ed9dc4c67d7e603f6b08a45d1225422c8 (commit)
       via  8a39dd30e3d7f8386d15db6960926d75148610be (commit)
       via  fe9f7588151c5f98a73f5718cd19b1743ff1d6c2 (commit)
       via  dd2ef3b2370e89a79dc01ada8aa1f00d8f0615ee (commit)
       via  121628ea689844c3e6618d0e7ae4b83f8b3cbea6 (commit)
       via  3f653a29ae0e030a36fe4a49652fc0411eed782c (commit)
       via  f14e224b1c98924dd46f50fa3539c7b799ebc35d (commit)
       via  802d795488a1387e8b564201894d3db39681d08b (commit)
       via  b3f7b96824062f9fa3d9222a4b7e117ae20c949f (commit)
       via  a4b9426b0f5f965128fc745013e26b3d1cd316a9 (commit)
       via  ff972c82761ab198819dc268b154b7b4cc0b06df (commit)
       via  c3f00878dded2e80bfaba67627d2826ad8d49f89 (commit)
       via  697a4d5217b10429a40a5224ac65b680485dc080 (commit)
       via  f880f8a22528ff0e896eb2a3e1bfdaa676493966 (commit)
       via  926241aea24a60dce858c863aac39d6be83b23df (commit)
       via  eb6389d09de11b2aad940d5bbacb5e2a28ce79fa (commit)
       via  865c76157580b18551df1033781fbf3b8fccc8e6 (commit)
       via  ceda40f2bcd67c7e0b3215e0c32eec21ca59811c (commit)
       via  af731c7dc5e4d947893bcd1427d14195665bcb4f (commit)
      from  1dc44471365cccef7ab2b3ec766c0d0c26f86475 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 9027a25d92afbbb4486c17deac66b4c439e80520
Merge: 4234ca5 935f311
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Sun Jan 5 21:16:17 2014 +0100

    Merge remote-tracking branch 'ms/fifteen-theme' into fifteen

commit 4234ca5d64f8e34c40ee48c58599f00cb3a15862
Author: Alexander Marx <amarx(a)ipfire.org>
Date:   Sun Jan 5 15:18:24 2014 +0100

    Firewall: cleanup of unused JS variables.

commit 0051027b79220c17a8eb5e05dcf79e1549c94489
Author: Alexander Marx <amarx(a)ipfire.org>
Date:   Fri Jan 3 09:13:33 2014 +0100

    Firewall: Bugfix - when creating a SNAT rule and using a service or servicegroup there was an errormessage displayed

commit 935f311ed9dc4c67d7e603f6b08a45d1225422c8
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Sun Jan 5 21:07:41 2014 +0100

    Add an alternative default theme with rounded corners.

commit 8a39dd30e3d7f8386d15db6960926d75148610be
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Sun Jan 5 19:38:14 2014 +0100

    fifteen: Add all updated themes and CGI files to the updater.

commit fe9f7588151c5f98a73f5718cd19b1743ff1d6c2
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Sun Jan 5 19:36:06 2014 +0100

    ipfire theme: Show hostname in title by default.

commit dd2ef3b2370e89a79dc01ada8aa1f00d8f0615ee
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Sun Jan 5 19:32:23 2014 +0100

    ipfire-theme: Update path to jQuery.

commit 121628ea689844c3e6618d0e7ae4b83f8b3cbea6
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Sun Jan 5 19:31:32 2014 +0100

    GUI: Remove the blend effects option.

commit 3f653a29ae0e030a36fe4a49652fc0411eed782c
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Sun Jan 5 19:25:46 2014 +0100

    ipfire-legacy theme: Update web resource paths.

commit f14e224b1c98924dd46f50fa3539c7b799ebc35d
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Sun Jan 5 19:18:55 2014 +0100

    ipfire theme: Update file paths to web resource files.

commit 802d795488a1387e8b564201894d3db39681d08b
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Sun Jan 5 19:06:08 2014 +0100

    header.pl: Include required perl module.

commit b3f7b96824062f9fa3d9222a4b7e117ae20c949f
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Sun Jan 5 19:02:09 2014 +0100

    ipfire theme: Remove lowercase stylization.

commit a4b9426b0f5f965128fc745013e26b3d1cd316a9
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Sun Jan 5 18:58:27 2014 +0100

    Rename ipfire-new theme to ipfire.

commit ff972c82761ab198819dc268b154b7b4cc0b06df
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Sun Jan 5 18:58:02 2014 +0100

    Rename old default theme to ipfire-legacy.

commit c3f00878dded2e80bfaba67627d2826ad8d49f89
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Sun Jan 5 18:51:22 2014 +0100

    ipfire-new: Update footer.

commit 697a4d5217b10429a40a5224ac65b680485dc080
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Sun Jan 5 18:15:40 2014 +0100

    ipfire-new: Cleanup CSS code.
    
    Lots of code that was either redudant, unused or unnecessary
    has been removed or has been cleaned up.

commit f880f8a22528ff0e896eb2a3e1bfdaa676493966
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Sun Jan 5 15:10:27 2014 +0100

    ipfire-new: Re-indent CSS file.

commit 926241aea24a60dce858c863aac39d6be83b23df
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Sun Jan 5 14:59:24 2014 +0100

    speedmeter: Convert bytes to bits.
    
    I assumed that it was computes in bits (hence the variable names).

commit eb6389d09de11b2aad940d5bbacb5e2a28ce79fa
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Sun Jan 5 14:50:34 2014 +0100

    ipfire-new: Fix positioning of the page headline.

commit 865c76157580b18551df1033781fbf3b8fccc8e6
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Sun Jan 5 14:40:06 2014 +0100

    speedmeter: Show speeds in Bit/s, kBit/s, MBit/s, ...
    
    Also clean up the dirty HTML code.

commit ceda40f2bcd67c7e0b3215e0c32eec21ca59811c
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Sun Jan 5 14:15:11 2014 +0100

    ipfire-new: Fix encoding of refreshInetInfo.js.

commit af731c7dc5e4d947893bcd1427d14195665bcb4f
Author: Alexander Marx <alexander.marx(a)ipfire.org>
Date:   Sun Jan 5 14:04:59 2014 +0100

    New theme for the IPFire web user interface

-----------------------------------------------------------------------

Summary of changes:
 config/cfgroot/header.pl                           |   5 +-
 config/rootfiles/core/fifteen/filelists/files      |   6 +-
 config/rootfiles/core/fifteen/update.sh            |   3 +
 doc/language_issues.de                             |   1 +
 doc/language_issues.en                             |   1 +
 doc/language_issues.es                             |   2 +
 doc/language_issues.fr                             |   2 +
 doc/language_issues.nl                             |   2 +
 doc/language_issues.pl                             |   2 +
 doc/language_issues.ru                             |   2 +
 doc/language_issues.tr                             |   2 +
 doc/language_missings                              |   4 +
 html/cgi-bin/firewall.cgi                          |  12 +-
 html/cgi-bin/gui.cgi                               |  21 +-
 html/html/themes/darkdos/include/functions.pl      |  10 -
 .../themes/{ipfire => ipfire-legacy}/images/n1.gif | Bin
 .../themes/{ipfire => ipfire-legacy}/images/n2.gif | Bin
 .../themes/{ipfire => ipfire-legacy}/images/n3.gif | Bin
 .../themes/{ipfire => ipfire-legacy}/images/n4.gif | Bin
 .../themes/{ipfire => ipfire-legacy}/images/n5.gif | Bin
 .../themes/{ipfire => ipfire-legacy}/images/n6.gif | Bin
 .../{ipfire => ipfire-legacy}/images/spacer.gif    | Bin
 .../{ipfire => ipfire-legacy}/include/colors.txt   |   0
 .../{ipfire => ipfire-legacy}/include/functions.pl |  12 +-
 .../{ipfire => ipfire-legacy}/include/style.css    |  14 +-
 html/html/themes/ipfire/images/tux2.png            | Bin 0 -> 9640 bytes
 .../themes/ipfire/include/css/style-rounded.css    | 130 +++++
 html/html/themes/ipfire/include/css/style.css      | 261 ++++++++++
 html/html/themes/ipfire/include/functions.pl       | 529 +++++++--------------
 .../themes/ipfire/include/js/refreshInetInfo.js    |  69 +++
 html/html/themes/maniac/include/functions.pl       |  10 -
 langs/de/cgi-bin/de.pl                             |   1 +
 langs/en/cgi-bin/en.pl                             |   1 +
 lfs/apache2                                        |   1 +
 34 files changed, 688 insertions(+), 415 deletions(-)
 rename html/html/themes/{ipfire => ipfire-legacy}/images/n1.gif (100%)
 copy html/html/themes/{ipfire => ipfire-legacy}/images/n2.gif (100%)
 copy html/html/themes/{ipfire => ipfire-legacy}/images/n3.gif (100%)
 rename html/html/themes/{ipfire => ipfire-legacy}/images/n4.gif (100%)
 copy html/html/themes/{ipfire => ipfire-legacy}/images/n5.gif (100%)
 copy html/html/themes/{ipfire => ipfire-legacy}/images/n6.gif (100%)
 rename html/html/themes/{ipfire => ipfire-legacy}/images/spacer.gif (100%)
 copy html/html/themes/{ipfire => ipfire-legacy}/include/colors.txt (100%)
 copy html/html/themes/{ipfire => ipfire-legacy}/include/functions.pl (96%)
 rename html/html/themes/{ipfire => ipfire-legacy}/include/style.css (91%)
 create mode 100644 html/html/themes/ipfire/images/tux2.png
 create mode 100644 html/html/themes/ipfire/include/css/style-rounded.css
 create mode 100644 html/html/themes/ipfire/include/css/style.css
 create mode 100644 html/html/themes/ipfire/include/js/refreshInetInfo.js

Difference in files:
diff --git a/config/cfgroot/header.pl b/config/cfgroot/header.pl
index 299d766..bf92507 100644
--- a/config/cfgroot/header.pl
+++ b/config/cfgroot/header.pl
@@ -12,6 +12,7 @@
 package Header;
 
 use CGI();
+use File::Basename;
 use HTML::Entities();
 use Socket;
 use Time::Local;
@@ -88,9 +89,11 @@ if ( -d "/var/ipfire/langs/${language}/" ) {
     };
 };
 
+our $THEME_NAME = $settings{'THEME'};
+
 require "${swroot}/langs/en.pl";
 require "${swroot}/langs/${language}.pl";
-eval `/bin/cat /srv/web/ipfire/html/themes/$settings{'THEME'}/include/functions.pl`;
+eval `/bin/cat /srv/web/ipfire/html/themes/$THEME_NAME/include/functions.pl`;
 
 sub orange_used () {
     if ($ethsettings{'CONFIG_TYPE'} =~ /^[24]$/) {
diff --git a/config/rootfiles/core/fifteen/filelists/files b/config/rootfiles/core/fifteen/filelists/files
index 345521b..0f3a7e9 100644
--- a/config/rootfiles/core/fifteen/filelists/files
+++ b/config/rootfiles/core/fifteen/filelists/files
@@ -2,6 +2,7 @@ etc/system-release
 etc/issue
 etc/rc.d/init.d/network
 srv/web/ipfire/cgi-bin/credits.cgi
+srv/web/ipfire/cgi-bin/gui.cgi
 srv/web/ipfire/cgi-bin/index.cgi
 srv/web/ipfire/cgi-bin/netinternal.cgi
 srv/web/ipfire/cgi-bin/ovpnmain.cgi
@@ -11,8 +12,9 @@ srv/web/ipfire/cgi-bin/speed.cgi
 srv/web/ipfire/cgi-bin/urlfilter.cgi
 srv/web/ipfire/cgi-bin/vpnmain.cgi
 srv/web/ipfire/html/themes/darkdos
-srv/web/ipfire/html/themes/ipfire/include/functions.pl
-srv/web/ipfire/html/themes/maniac/include/functions.pl
+srv/web/ipfire/html/themes/ipfire
+srv/web/ipfire/html/themes/ipfire-legacy
+srv/web/ipfire/html/themes/maniac
 var/ipfire/backup/bin/backup.pl
 var/ipfire/backup/exclude
 var/ipfire/backup/include
diff --git a/config/rootfiles/core/fifteen/update.sh b/config/rootfiles/core/fifteen/update.sh
index d2f2fc2..4a56972 100644
--- a/config/rootfiles/core/fifteen/update.sh
+++ b/config/rootfiles/core/fifteen/update.sh
@@ -32,6 +32,9 @@ do
 	rm -f /var/cache/pakfire/core-upgrade-*-$i.ipfire
 done
 
+# Remove the old default theme
+rm -rf /srv/web/ipfire/html/themes/ipfire
+
 # Stop services
 
 
diff --git a/doc/language_issues.de b/doc/language_issues.de
index 8b46d6f..bcc0214 100644
--- a/doc/language_issues.de
+++ b/doc/language_issues.de
@@ -133,6 +133,7 @@ WARNING: translation string unused: dial user password has been changed
 WARNING: translation string unused: dialup settings
 WARNING: translation string unused: disconnect
 WARNING: translation string unused: display traffic at home
+WARNING: translation string unused: display webinterface effects
 WARNING: translation string unused: dmz pinhole configuration
 WARNING: translation string unused: dmz pinhole rule added
 WARNING: translation string unused: dmz pinhole rule removed
diff --git a/doc/language_issues.en b/doc/language_issues.en
index d4281e0..1eccc80 100644
--- a/doc/language_issues.en
+++ b/doc/language_issues.en
@@ -155,6 +155,7 @@ WARNING: translation string unused: dial user password has been changed
 WARNING: translation string unused: dialup settings
 WARNING: translation string unused: disconnect
 WARNING: translation string unused: display traffic at home
+WARNING: translation string unused: display webinterface effects
 WARNING: translation string unused: dmz pinhole configuration
 WARNING: translation string unused: dmz pinhole rule added
 WARNING: translation string unused: dmz pinhole rule removed
diff --git a/doc/language_issues.es b/doc/language_issues.es
index 9ae2c0a..6b6424a 100644
--- a/doc/language_issues.es
+++ b/doc/language_issues.es
@@ -148,6 +148,7 @@ WARNING: translation string unused: dial user password has been changed
 WARNING: translation string unused: dialup settings
 WARNING: translation string unused: disconnect
 WARNING: translation string unused: display traffic at home
+WARNING: translation string unused: display webinterface effects
 WARNING: translation string unused: dmz pinhole configuration
 WARNING: translation string unused: dmz pinhole rule added
 WARNING: translation string unused: dmz pinhole rule removed
@@ -828,6 +829,7 @@ WARNING: untranslated string: routing table
 WARNING: untranslated string: server restart
 WARNING: untranslated string: snat new source ip address
 WARNING: untranslated string: static routes
+WARNING: untranslated string: support donation
 WARNING: untranslated string: system information
 WARNING: untranslated string: tor
 WARNING: untranslated string: tor accounting
diff --git a/doc/language_issues.fr b/doc/language_issues.fr
index 7e5a1f5..2f7f60d 100644
--- a/doc/language_issues.fr
+++ b/doc/language_issues.fr
@@ -148,6 +148,7 @@ WARNING: translation string unused: dial user password has been changed
 WARNING: translation string unused: dialup settings
 WARNING: translation string unused: disconnect
 WARNING: translation string unused: display traffic at home
+WARNING: translation string unused: display webinterface effects
 WARNING: translation string unused: dmz pinhole configuration
 WARNING: translation string unused: dmz pinhole rule added
 WARNING: translation string unused: dmz pinhole rule removed
@@ -819,6 +820,7 @@ WARNING: untranslated string: server restart
 WARNING: untranslated string: snat new source ip address
 WARNING: untranslated string: snort working
 WARNING: untranslated string: static routes
+WARNING: untranslated string: support donation
 WARNING: untranslated string: system information
 WARNING: untranslated string: tor
 WARNING: untranslated string: tor accounting
diff --git a/doc/language_issues.nl b/doc/language_issues.nl
index 10e12db..d543069 100644
--- a/doc/language_issues.nl
+++ b/doc/language_issues.nl
@@ -150,6 +150,7 @@ WARNING: translation string unused: dial user password has been changed
 WARNING: translation string unused: dialup settings
 WARNING: translation string unused: disconnect
 WARNING: translation string unused: display traffic at home
+WARNING: translation string unused: display webinterface effects
 WARNING: translation string unused: dmz pinhole configuration
 WARNING: translation string unused: dmz pinhole rule added
 WARNING: translation string unused: dmz pinhole rule removed
@@ -737,6 +738,7 @@ WARNING: untranslated string: routing config added
 WARNING: untranslated string: routing config changed
 WARNING: untranslated string: routing table
 WARNING: untranslated string: snat new source ip address
+WARNING: untranslated string: support donation
 WARNING: untranslated string: tor
 WARNING: untranslated string: tor accounting
 WARNING: untranslated string: tor accounting bytes
diff --git a/doc/language_issues.pl b/doc/language_issues.pl
index 9ae2c0a..6b6424a 100644
--- a/doc/language_issues.pl
+++ b/doc/language_issues.pl
@@ -148,6 +148,7 @@ WARNING: translation string unused: dial user password has been changed
 WARNING: translation string unused: dialup settings
 WARNING: translation string unused: disconnect
 WARNING: translation string unused: display traffic at home
+WARNING: translation string unused: display webinterface effects
 WARNING: translation string unused: dmz pinhole configuration
 WARNING: translation string unused: dmz pinhole rule added
 WARNING: translation string unused: dmz pinhole rule removed
@@ -828,6 +829,7 @@ WARNING: untranslated string: routing table
 WARNING: untranslated string: server restart
 WARNING: untranslated string: snat new source ip address
 WARNING: untranslated string: static routes
+WARNING: untranslated string: support donation
 WARNING: untranslated string: system information
 WARNING: untranslated string: tor
 WARNING: untranslated string: tor accounting
diff --git a/doc/language_issues.ru b/doc/language_issues.ru
index f46ba7a..5a1296b 100644
--- a/doc/language_issues.ru
+++ b/doc/language_issues.ru
@@ -147,6 +147,7 @@ WARNING: translation string unused: dial user password has been changed
 WARNING: translation string unused: dialup settings
 WARNING: translation string unused: disconnect
 WARNING: translation string unused: display traffic at home
+WARNING: translation string unused: display webinterface effects
 WARNING: translation string unused: dmz pinhole configuration
 WARNING: translation string unused: dmz pinhole rule added
 WARNING: translation string unused: dmz pinhole rule removed
@@ -800,6 +801,7 @@ WARNING: untranslated string: routing table
 WARNING: untranslated string: server restart
 WARNING: untranslated string: snat new source ip address
 WARNING: untranslated string: static routes
+WARNING: untranslated string: support donation
 WARNING: untranslated string: tor
 WARNING: untranslated string: tor accounting
 WARNING: untranslated string: tor accounting bytes
diff --git a/doc/language_issues.tr b/doc/language_issues.tr
index 5bd50a0..299c74d 100644
--- a/doc/language_issues.tr
+++ b/doc/language_issues.tr
@@ -155,6 +155,7 @@ WARNING: translation string unused: dial user password has been changed
 WARNING: translation string unused: dialup settings
 WARNING: translation string unused: disconnect
 WARNING: translation string unused: display traffic at home
+WARNING: translation string unused: display webinterface effects
 WARNING: translation string unused: dmz pinhole configuration
 WARNING: translation string unused: dmz pinhole rule added
 WARNING: translation string unused: dmz pinhole rule removed
@@ -742,6 +743,7 @@ WARNING: untranslated string: routing config added
 WARNING: untranslated string: routing config changed
 WARNING: untranslated string: routing table
 WARNING: untranslated string: snat new source ip address
+WARNING: untranslated string: support donation
 WARNING: untranslated string: tor directory port
 WARNING: untranslated string: tor errmsg invalid directory port
 WARNING: untranslated string: urlfilter redirect template
diff --git a/doc/language_missings b/doc/language_missings
index e3e5c8e..86f45b0 100644
--- a/doc/language_missings
+++ b/doc/language_missings
@@ -307,6 +307,7 @@
 < snat new source ip address
 < snort working
 < static routes
+< support donation
 < system information
 < tor
 < tor 0 = disabled
@@ -740,6 +741,7 @@
 < Set time on boot
 < snat new source ip address
 < static routes
+< support donation
 < system information
 < tor
 < tor 0 = disabled
@@ -1126,6 +1128,7 @@
 < server restart
 < snat new source ip address
 < static routes
+< support donation
 < tor
 < tor 0 = disabled
 < tor accounting
@@ -1516,6 +1519,7 @@
 < server restart
 < snat new source ip address
 < static routes
+< support donation
 < tor
 < tor 0 = disabled
 < tor accounting
diff --git a/html/cgi-bin/firewall.cgi b/html/cgi-bin/firewall.cgi
index 71ca752..29b70b4 100755
--- a/html/cgi-bin/firewall.cgi
+++ b/html/cgi-bin/firewall.cgi
@@ -158,11 +158,6 @@ print<<END;
 		// dropdown menu changes.
 		\$("select").change(function() {
 			var id = \$(this).attr("name");
-
-			// When using SNAT or DNAT, check "USE NAT" Checkbox
-			if (id === 'snat' || id === 'dnat') {
-				\$('#USE_NAT').prop('checked', true);
-			}
 			\$('#' + id).prop("checked", true);
 		});
 	});
@@ -731,7 +726,7 @@ sub checkrule
 	if($fwdfwsettings{'USE_NAT'} eq 'ON'){
 		#if no dest port is given in nat area, take target host port
 		if($fwdfwsettings{'nat'} eq 'dnat' && $fwdfwsettings{'grp3'} eq 'TGT_PORT' && $fwdfwsettings{'dnatport'} eq ''){$fwdfwsettings{'dnatport'}=$fwdfwsettings{'TGT_PORT'};}
-		if($fwdfwsettings{'TGT_PORT'} eq ''){
+		if($fwdfwsettings{'TGT_PORT'} eq '' && $fwdfwsettings{'dnatport'} ne '' && ($fwdfwsettings{'PROT'} eq 'TCP' || $fwdfwsettings{'PROT'} eq 'UDP')){
 			$errormessage=$Lang::tr{'fwdfw dnat porterr2'};
 		}
 		#check if port given in nat area is a single valid port or portrange
@@ -1447,6 +1442,7 @@ sub newrule
 	$checked{'TIME_SAT'}{$fwdfwsettings{'TIME_SAT'}} 		= 'CHECKED';
 	$checked{'TIME_SUN'}{$fwdfwsettings{'TIME_SUN'}} 		= 'CHECKED';
 	$checked{'USE_NAT'}{$fwdfwsettings{'USE_NAT'}} 			= 'CHECKED';
+	$checked{'nat'}{$fwdfwsettings{'nat'}} 		= 'CHECKED';
 	$selected{'TIME_FROM'}{$fwdfwsettings{'TIME_FROM'}}		= 'selected';
 	$selected{'TIME_TO'}{$fwdfwsettings{'TIME_TO'}}			= 'selected';
 	$selected{'ipfire'}{$fwdfwsettings{$fwdfwsettings{'grp2'}}} ='selected';
@@ -1594,7 +1590,7 @@ END
 						<td width='5%'></td>
 						<td width='40%'>
 							<label>
-								<input type='radio' name='nat' id='dnat' value='dnat' checked>
+								<input type='radio' name='nat'  value='dnat' $checked{'nat'}{'dnat'}>
 								$Lang::tr{'fwdfw dnat'}
 							</label>
 						</td>
@@ -1627,7 +1623,7 @@ END
 						<td width='5%'></td>
 						<td width='40%'>
 							<label>
-								<input type='radio' name='nat' id='snat' value='snat' $checked{'nat'}{'snat'}>
+								<input type='radio' name='nat'  value='snat' $checked{'nat'}{'snat'}>
 								$Lang::tr{'fwdfw snat'}
 							</label>
 						</td>
diff --git a/html/cgi-bin/gui.cgi b/html/cgi-bin/gui.cgi
index 5abf88e..9804615 100644
--- a/html/cgi-bin/gui.cgi
+++ b/html/cgi-bin/gui.cgi
@@ -36,7 +36,6 @@ my %checked=();
 my $errormessage='';
 
 
-$cgiparams{'FX'} = 'off';
 $cgiparams{'SPEED'} = 'off';
 $cgiparams{'WINDOWWITHHOSTNAME'} = 'off';
 $cgiparams{'REBOOTQUESTION'} = 'off';
@@ -90,7 +89,6 @@ if ($cgiparams{'ACTION'} eq "$Lang::tr{'save'}")
 	$mainsettings{'WINDOWWITHHOSTNAME'} = $cgiparams{'WINDOWWITHHOSTNAME'};
 	$mainsettings{'REBOOTQUESTION'} = $cgiparams{'REBOOTQUESTION'};
 	$mainsettings{'PPPUPDOWNBEEP'} = $cgiparams{'PPPUPDOWNBEEP'};
-	$mainsettings{'FX'} = $cgiparams{'FX'};
 	$mainsettings{'SPEED'} = $cgiparams{'SPEED'};
 	$mainsettings{'THEME'} = $cgiparams{'theme'};
 	$mainsettings{'REFRESHINDEX'} = $cgiparams{'REFRESHINDEX'};
@@ -101,7 +99,7 @@ if ($cgiparams{'ACTION'} eq "$Lang::tr{'save'}")
 	if ($mainsettings{'WINDOWWITHHOSTNAME'}) {
 		$cgiparams{'WINDOWWITHHOSTNAME'} = $mainsettings{'WINDOWWITHHOSTNAME'};
 	} else {
-		$cgiparams{'WINDOWWITHHOSTNAME'} = 'off';
+		$cgiparams{'WINDOWWITHHOSTNAME'} = 'on';
 	}
 	
 	if ($mainsettings{'REBOOTQUESTION'}) {
@@ -116,12 +114,6 @@ if ($cgiparams{'ACTION'} eq "$Lang::tr{'save'}")
 		$cgiparams{'PPPUPDOWNBEEP'} = 'on';
 	}
 
-	if ($mainsettings{'FX'}) {
-		$cgiparams{'FX'} = $mainsettings{'FX'};
-	} else {
-		$cgiparams{'FX'} = 'on';
-	}
-
 	if ($mainsettings{'THEME'}) {
 		$cgiparams{'THEME'} = $mainsettings{'THEME'};
 	} else {
@@ -146,11 +138,10 @@ if ($cgiparams{'ACTION'} eq "$Lang::tr{'save'}")
 # Default settings
 if ($cgiparams{'ACTION'} eq "$Lang::tr{'restore defaults'}")
 {
-	$cgiparams{'WINDOWWITHHOSTNAME'} = 'off';
+	$cgiparams{'WINDOWWITHHOSTNAME'} = 'on';
 	$cgiparams{'REBOOTQUESTION'} = 'on';
 	$cgiparams{'PPPUPDOWNBEEP'} = 'on';
 	$cgiparams{'REFRESHINDEX'} = 'off';
-	$cgiparams{'FX'} = 'on';
 	$cgiparams{'SPEED'} = 'on';
 	$cgiparams{'THEME'} = 'ipfire';
 }
@@ -171,10 +162,6 @@ $checked{'REFRESHINDEX'}{'off'} = '';
 $checked{'REFRESHINDEX'}{'on'} = '';
 $checked{'REFRESHINDEX'}{$cgiparams{'REFRESHINDEX'}} = "checked='checked'";
 
-$checked{'FX'}{'off'} = '';
-$checked{'FX'}{'on'} = '';
-$checked{'FX'}{$cgiparams{'FX'}} = "checked='checked'";
-
 $checked{'SPEED'}{'off'} = '';
 $checked{'SPEED'}{'on'} = '';
 $checked{'SPEED'}{$cgiparams{'SPEED'}} = "checked='checked'";
@@ -197,10 +184,6 @@ print <<END
     <td colspan='2'><p><b>$Lang::tr{'display'}</b></td>
 </tr>
 <tr>
-    <td><input type='checkbox' name='FX' $checked{'FX'}{'on'} /></td>
-    <td>$Lang::tr{'display webinterface effects'}</td>
-</tr>
-<tr>
     <td><input type='checkbox' name='WINDOWWITHHOSTNAME' $checked{'WINDOWWITHHOSTNAME'}{'on'} /></td>
     <td>$Lang::tr{'display hostname in window title'}</td>
 </tr>
diff --git a/html/html/themes/darkdos/include/functions.pl b/html/html/themes/darkdos/include/functions.pl
index 82e9b0a..737e051 100644
--- a/html/html/themes/darkdos/include/functions.pl
+++ b/html/html/themes/darkdos/include/functions.pl
@@ -149,16 +149,6 @@ sub openpage {
 <head>
 		<title>$title</title>
     $extrahead
-END
-;
-    if ($settings{'FX'} ne 'off') {
-    print <<END
-    <meta http-equiv="Page-Enter" content="blendTrans(Duration=0.5,Transition=12)" />
-    <meta http-equiv="Page-Exit" content="blendTrans(Duration=0.5,Transition=12)" />
-END
-;
-    }
-    print <<END
     <link rel="shortcut icon" href="/favicon.ico" />
     <link rel="stylesheet" type="text/css" href="/themes/darkdos/include/style.css" />
     <script language="javascript" type="text/javascript">
diff --git a/html/html/themes/ipfire-legacy/images/n1.gif b/html/html/themes/ipfire-legacy/images/n1.gif
new file mode 100644
index 0000000..6eb5161
Binary files /dev/null and b/html/html/themes/ipfire-legacy/images/n1.gif differ
diff --git a/html/html/themes/ipfire-legacy/images/n2.gif b/html/html/themes/ipfire-legacy/images/n2.gif
new file mode 100644
index 0000000..b92a19d
Binary files /dev/null and b/html/html/themes/ipfire-legacy/images/n2.gif differ
diff --git a/html/html/themes/ipfire-legacy/images/n3.gif b/html/html/themes/ipfire-legacy/images/n3.gif
new file mode 100644
index 0000000..6627c91
Binary files /dev/null and b/html/html/themes/ipfire-legacy/images/n3.gif differ
diff --git a/html/html/themes/ipfire-legacy/images/n4.gif b/html/html/themes/ipfire-legacy/images/n4.gif
new file mode 100644
index 0000000..8698525
Binary files /dev/null and b/html/html/themes/ipfire-legacy/images/n4.gif differ
diff --git a/html/html/themes/ipfire-legacy/images/n5.gif b/html/html/themes/ipfire-legacy/images/n5.gif
new file mode 100644
index 0000000..a032242
Binary files /dev/null and b/html/html/themes/ipfire-legacy/images/n5.gif differ
diff --git a/html/html/themes/ipfire-legacy/images/n6.gif b/html/html/themes/ipfire-legacy/images/n6.gif
new file mode 100644
index 0000000..ed1781c
Binary files /dev/null and b/html/html/themes/ipfire-legacy/images/n6.gif differ
diff --git a/html/html/themes/ipfire-legacy/images/spacer.gif b/html/html/themes/ipfire-legacy/images/spacer.gif
new file mode 100644
index 0000000..5bfd67a
Binary files /dev/null and b/html/html/themes/ipfire-legacy/images/spacer.gif differ
diff --git a/html/html/themes/ipfire-legacy/include/colors.txt b/html/html/themes/ipfire-legacy/include/colors.txt
new file mode 100644
index 0000000..6d7dd1c
--- /dev/null
+++ b/html/html/themes/ipfire-legacy/include/colors.txt
@@ -0,0 +1,25 @@
+color1=#CD5B45
+color2=#EE6A50
+color3=#FF7256
+color4=#EE9572
+color5=#FFA07A
+color6=#CDAF95
+color7=#EECBAD
+color8=#FFDAB9
+color9=#FFE4C4
+color10=#FFCCCC
+color11=#0000FF
+color12=#00FF00
+color13=#FF0000
+color14=#FFD700
+color15=#CCCCCC
+color16=#40E0D0
+color17=#90EE90
+color18=#F4A460
+color19=#EAE9EE
+color20=#D6D6D6
+color21=#FFFFFF
+color22=#F0F0F0
+color23=#FF00FF
+color24=#6464FF
+color25=#FF6464
diff --git a/html/html/themes/ipfire-legacy/include/functions.pl b/html/html/themes/ipfire-legacy/include/functions.pl
new file mode 100644
index 0000000..1401030
--- /dev/null
+++ b/html/html/themes/ipfire-legacy/include/functions.pl
@@ -0,0 +1,404 @@
+#!/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/>.       #
+#                                                                             #
+###############################################################################
+
+sub showmenu() {
+    print <<EOF
+                <div id="menu">
+                        <ul>
+EOF
+;
+    foreach my $k1 ( sort keys %$menu ) {
+        if (! $menu->{$k1}{'enabled'}) {
+            next;
+        }
+        my $link = getlink($menu->{$k1});
+        if ($link eq '') {
+            next;
+        }
+        if (! is_menu_visible($link)) {
+            next;
+        }
+        if ($menu->{$k1}->{'selected'}) {
+            print "<li><a href=\"$link\" class=\"active\">$menu->{$k1}{'caption'}</a></li>";
+        } else {
+            print "<li><a href=\"$link\">$menu->{$k1}{'caption'}</a></li>";
+        }
+    }
+    print <<EOF
+                        </ul>
+                </div>
+EOF
+;    
+}
+
+sub getselected($) {
+    my $root = shift;
+    if (!$root) {
+        return 0;
+    }
+
+    foreach my $item (%$root) {
+        if ($root->{$item}{'selected'}) {
+            return $root->{$item};
+        }
+    }
+}
+
+sub showsubsection($$) {
+    my $root = shift;
+
+    if (! $root) {
+        return;
+    }
+    my $selected = getselected($root);
+    if (! $selected) {
+        return;
+    }
+    my $submenus = $selected->{'subMenu'};
+    if (! $submenus) {
+        return;
+    }
+
+    print <<EOF
+        <h4><span>Side</span>menu</h4>
+        <ul class="links">
+EOF
+;
+    foreach my $item (sort keys %$submenus) {
+        my $hash = $submenus->{$item};
+        if (! $hash->{'enabled'}) {
+            next;
+        }
+        my $link = getlink($hash);
+        if ($link eq '') {
+            next;
+        }
+        if (! is_menu_visible($link)) {
+            next;
+        }
+        if ($hash->{'selected'}) {
+            print '<li class="selected">';
+        } else {
+            print '<li>';
+        }
+
+        print "<a href=\"$link\">$hash->{'caption'}</a></li>";
+    }
+
+    print <<EOF
+        </ul>
+EOF
+;
+}
+
+
+sub showsubsubsection($) {
+    my $root = shift;
+    if (!$root) {
+        return;
+    }
+    my $selected = getselected($root);
+    if (! $selected) {
+        return
+    }
+    if (! $selected->{'subMenu'}) {
+        return
+    }
+
+    showsubsection($selected->{'subMenu'}, 'menu-subtop');
+}
+
+sub openpage {
+    my $title = shift;
+    my $boh = shift;
+    my $extrahead = shift;
+
+    @URI=split ('\?',  $ENV{'REQUEST_URI'} );
+    &General::readhash("${swroot}/main/settings", \%settings);
+    &genmenu();
+
+    my $h2 = gettitle($menu);
+
+    $title = "IPFire - $title";
+    if ($settings{'WINDOWWITHHOSTNAME'} eq 'on') {
+        $title =  "$settings{'HOSTNAME'}.$settings{'DOMAINNAME'} - $title"; 
+    }
+
+    print <<END
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+		<title>$title</title>
+    $extrahead
+    <link rel="shortcut icon" href="/favicon.ico" />
+    <link rel="stylesheet" type="text/css" href="/themes/ipfire-legacy/include/style.css" />
+    <script language="javascript" type="text/javascript">
+      
+        function swapVisibility(id) {
+            el = document.getElementById(id);
+            if(el.style.display != 'block') {
+                el.style.display = 'block'
+            }
+            else {
+                el.style.display = 'none'
+            }
+        }
+    </script>
+END
+;
+if ($settings{'SPEED'} ne 'off') {
+print <<END
+    <script type="text/javascript" src="/include/jquery.js"></script>
+    <script type="text/javascript">
+        var t_current;
+        var t_last;
+        var rxb_current;
+        var rxb_last;
+        var txb_current;
+        var txb_last;
+	function refreshInetInfo() {
+		\$.ajax({
+                	url: '/cgi-bin/speed.cgi',
+                        success: function(xml){
+                        t_current = new Date();
+                        var t_diff = t_current - t_last;
+                        t_last = t_current;
+
+                        rxb_current = \$("rxb",xml).text();
+                        var rxb_diff = rxb_current - rxb_last;
+                        rxb_last = rxb_current;
+
+                        var rx_kbs = rxb_diff/t_diff;
+                        rx_kbs = Math.round(rx_kbs*10)/10;
+
+                        txb_current = \$("txb",xml).text();
+                        var txb_diff = txb_current - txb_last;
+                        txb_last = txb_current;
+
+                        var tx_kbs = txb_diff/t_diff;
+                        tx_kbs = Math.round(tx_kbs*10)/10;
+
+                        \$("#rx_kbs").text(rx_kbs + ' kb/s');
+                        \$("#tx_kbs").text(tx_kbs + ' kb/s');
+                        }
+        	});
+                window.setTimeout("refreshInetInfo()", 3000);
+	}
+	\$(document).ready(function(){
+		refreshInetInfo();
+	});
+    </script>
+  </head>
+  <body>
+END
+;
+}
+else {
+print "</head><body>";}
+print <<END
+<!-- IPFIRE HEADER -->
+
+<div id="header">
+
+        <div id="header_inner" class="fixed">
+
+                <div id="logo">
+END
+;
+    if ($settings{'WINDOWWITHHOSTNAME'} eq 'on') {
+        print "<h1><span>$settings{'HOSTNAME'}.$settings{'DOMAINNAME'}</span></h1><br />"; 
+    } else {
+                                print "<h1><span>IPFire</span></h1><br />";
+                }
+                print <<END
+                        <h2>$h2</h2>
+                </div>
+
+END
+;
+        &showmenu();
+
+print <<END     
+        </div>
+</div>
+
+<div id="main">
+        <div id="main_inner" class="fixed">
+                <div id="primaryContent_2columns">
+                        <div id="columnA_2columns">
+END
+;
+}
+
+sub openpagewithoutmenu {
+    my $title = shift;
+    my $boh = shift;
+    my $extrahead = shift;
+
+    @URI=split ('\?',  $ENV{'REQUEST_URI'} );
+    &General::readhash("${swroot}/main/settings", \%settings);
+    &genmenu();
+
+    my $h2 = gettitle($menu);
+
+    $title = "IPFire - $title";
+    if ($settings{'WINDOWWITHHOSTNAME'} eq 'on') {
+        $title =  "$settings{'HOSTNAME'}.$settings{'DOMAINNAME'} - $title"; 
+    }
+
+    print <<END
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+		<title>$title</title>
+		$extrahead
+END
+;
+    if ($settings{'FX'} ne 'off') {
+    print <<END
+    <meta http-equiv="Page-Enter" content="blendTrans(Duration=0.5,Transition=12)" />
+    <meta http-equiv="Page-Exit" content="blendTrans(Duration=0.5,Transition=12)" />
+END
+;
+    }
+    print <<END
+    <link rel="shortcut icon" href="/favicon.ico" />
+    <link rel="stylesheet" type="text/css" href="/include/style.css" />
+    <script language="javascript" type="text/javascript">
+      
+        function swapVisibility(id) {
+            el = document.getElementById(id);
+            if(el.style.display != 'block') {
+                el.style.display = 'block'
+            }
+            else {
+                el.style.display = 'none'
+            }
+        }
+    </script>
+
+  </head>
+  <body>
+<!-- IPFIRE HEADER -->
+
+<div id="header">
+
+        <div id="header_inner" class="fixed">
+
+                <div id="logo">
+                        <h1><span>IPFire</span></h1>
+                        <h2>$h2</h2>
+                </div>  
+        </div>
+</div>
+
+<div id="main">
+        <div id="main_inner" class="fixed">
+                <div id="primaryContent_2columns">
+                        <div id="columnA_2columns">
+END
+;
+}
+
+sub closepage () {
+	my $status = &connectionstatus();
+	my $uptime = `/usr/bin/uptime|cut -d \" \" -f 4-`;
+	$uptime =~ s/year(s|)/$Lang::tr{'year'}/;
+	$uptime =~ s/month(s|)/$Lang::tr{'month'}/;
+	$uptime =~ s/day(s|)/$Lang::tr{'day'}/;
+	$uptime =~ s/user(s|)/$Lang::tr{'user'}/;
+	$uptime =~ s/load average/$Lang::tr{'uptime load average'}/;     
+				
+    print <<END
+                        </div>
+                </div>
+
+                <div id="secondaryContent_2columns">
+                
+                        <div id="columnC_2columns">
+END
+;
+    &showsubsection($menu);
+    &showsubsubsection($menu);
+
+        print <<END                     
+				</div>
+            </div>
+            <br class="clear" />    
+			<div id="footer" class="fixed">
+				<b>Status:</b> $status <b>Uptime:</b> $uptime
+END
+;
+if ($settings{'SPEED'} ne 'off') {
+print <<END                        
+                        <br />
+                                <b>$Lang::tr{'bandwidth usage'}:</b>
+				$Lang::tr{'incoming'}: <span id="rx_kbs"></span>&nbsp;$Lang::tr{'outgoing'}: <span id="tx_kbs"></span>
+
+END
+;
+}
+print <<END
+                </div>
+        </div>
+</div>
+</body>
+</html>
+END
+;
+}
+
+sub openbigbox
+{
+}
+
+sub closebigbox
+{
+}
+
+sub openbox
+{
+        $width = $_[0];
+        $align = $_[1];
+        $caption = $_[2];
+
+        print <<END
+<!-- openbox -->
+        <div class="post" align="$align">
+END
+;
+
+        if ($caption) { print "<h3>$caption</h3>\n"; } else { print "&nbsp;"; }
+}
+
+sub closebox
+{
+        print <<END
+        </div>
+        <br class="clear" />
+        <!-- closebox -->
+END
+;
+}
+
+1;
diff --git a/html/html/themes/ipfire-legacy/include/style.css b/html/html/themes/ipfire-legacy/include/style.css
new file mode 100644
index 0000000..d2c458e
--- /dev/null
+++ b/html/html/themes/ipfire-legacy/include/style.css
@@ -0,0 +1,441 @@
+/*
+
+	Nonzero1.0 by nodethirtythree design
+	http://www.nodethirtythree.com
+	missing in a maze
+
+*/
+
+/* This controls the width of the fluid width layouts */
+
+div.fluid
+{
+width: 90% !important;
+}
+
+/* This controls the width of the fixed width layouts */
+
+div.fixed
+{
+width: 950px !important;
+}
+
+/* Basic Stuff */
+
+*
+{
+margin: 0em;
+padding: 0em;
+}
+
+body
+{
+background-color: #fff;
+color: #585858;
+font-size: 9pt;
+font-family: "trebuchet ms", helvetica, sans-serif;
+}
+
+h1,h2,h3,h4,h5,h6
+{
+font-weight: normal;
+letter-spacing: -1px;
+text-transform: lowercase;
+text-align: left;
+}
+
+h3,h4,h5,h6
+{
+color: #66000F;
+}
+
+h1 span
+{
+font-weight: bold;
+}
+
+h3 span
+{
+font-weight: bold;
+}
+
+h4 span
+{
+font-weight: bold;
+}
+
+br.clear
+{
+clear: both;
+}
+
+img
+{
+padding: 3px;
+#border: solid 1px #e1e1e1;
+}
+
+img.floatTL
+{
+float: left;
+margin-right: 1.5em;
+margin-bottom: 1.5em;
+margin-top: 0.5em;
+}
+
+a
+{
+text-decoration: underline;
+color: #D90000;
+}
+
+a:hover
+{
+text-decoration: none;
+}
+
+ul.links
+{
+list-style: none;
+}
+
+ul.links li
+{
+line-height: 2em;
+}
+
+ul.links li.first
+{
+}
+
+p
+{
+line-height: 1.8em;
+}
+
+/* Header */
+
+#header
+{
+width:100%;
+height:122px;
+background: #440000 url('../images/n1.gif') repeat-x;
+}
+
+#header_inner
+{
+position: relative;
+width: 950px;
+height:122px;
+margin: 0 auto;
+}
+
+/* Logo */
+
+#logo
+{
+position: absolute;
+bottom: 0.6em;
+}
+
+#logo h1
+{
+display: inline;
+color: #fff;
+font-size: 2.6em;
+}
+
+#logo h2
+{
+display: inline;
+padding-left: 0.5em;
+color: #E5CCD0;
+font-size: 1.0em;
+}
+
+/* Menu */
+
+#menu
+{
+position: absolute;
+right: 0em;
+bottom: 0em;
+}
+
+#menu ul
+{
+list-style: none;
+}
+
+#menu li
+{
+float: left;
+}
+
+#menu li a
+{
+margin-left: 0.5em;
+display: block;
+padding: 1.1em 1.4em 1.0em 1.4em;
+background: #fff url('../images/n4.gif') repeat-x;
+border: solid 1px #fff;
+color: #616161;
+font-weight: bold;
+font-size: 1.0em;
+text-transform: lowercase;
+text-decoration: none;
+}
+
+#menu li a.active
+{
+background: #CA2F2F url('../images/n3.gif') repeat-x;
+color: #fff;
+border: solid 1px #A94B4B;
+}
+
+/* Main */
+
+#main
+{
+background: #fff url('../images/n2.gif') 0px 1px repeat-x;
+}
+
+#main_inner p
+{
+text-align: justify;
+margin-bottom: 2.0em;
+}
+
+#main_inner ul
+{
+margin-bottom: 2.0em;
+}
+
+#main_inner
+{
+position: relative;
+width: 950px;
+margin: 0 auto;
+padding-top: 3.5em;
+}
+
+#main_inner h3,h4
+{
+border-bottom: dotted 1px #E1E1E1;
+position: relative;
+}
+
+#main_inner h3
+{
+font-size: 2.1em;
+padding-bottom: 0.1em;
+margin-bottom: 0.8em;
+}
+
+#main_inner h4
+{
+font-size: 1.2em;
+padding-bottom: 0.175em;
+margin-bottom: 1.4em;
+margin-top: 0.95em;
+}
+
+#main_inner .post
+{
+position: relative;
+}
+
+#main_inner .post h3
+{
+position: relative;
+font-size: 1.7em;
+padding-bottom: 0.4em;
+}
+
+#main_inner .post ul.post_info
+{
+list-style: none;
+position: absolute;
+top: 3em;
+font-size: 0.8em;
+}
+
+#main_inner .post ul.post_info li
+{
+background-position: 0em 0.2em;
+background-repeat: no-repeat;
+display: inline;
+padding-left: 18px;
+}
+
+#main_inner .post ul.post_info li.date
+{
+background-image: url('../images/n5.gif');
+}
+
+#main_inner .post ul.post_info li.comments
+{
+background-image: url('../images/n6.gif');
+margin-left: 1.1em;
+}
+
+/* Footer */
+
+#footer
+{
+width: 950px;
+margin: 0 auto;
+text-align: center;
+clear: both;
+border-top: dotted 1px #E1E1E1;
+margin-top: 1.0em;
+margin-bottom: 1.0em;
+padding-top: 1.0em;
+text-transform: lowercase;
+}
+
+/* Search */
+
+input
+{
+margin: 0.2em;
+}
+
+input.button
+{
+background: #CA2F2F url('../images/n3.gif') repeat-x;
+color: #fff;
+border: solid 1px #A94B4B;
+font-weight: bold;
+text-transform: lowercase;
+font-size: 0.8em;
+height: 2.0em;
+}
+
+input.text
+{
+border: solid 1px #F1F1F1;
+font-size: 1.0em;
+padding: 0.25em 0.25em 0.25em 0.25em;
+}
+
+#search
+{
+position: relative;
+width: 100%;
+margin-bottom: 2.0em;
+}
+
+#search input.text
+{
+position: absolute;
+top: 0em;
+left: 0em;
+width: 9.5em;
+}
+
+#search input.button
+{
+position: absolute;
+top: 0em;
+right: 0em;
+min-width: 2.0em;
+max-width: 2.5em;
+}
+
+/* LAYOUT - 3 COLUMNS */
+
+	/* Primary content */
+	
+	#primaryContent_3columns
+	{
+	position: relative;
+	margin-right: 34em;
+	}
+	
+	#columnA_3columns
+	{
+	position: relative;
+	float: left;
+	width: 100%;
+	margin-right: -34em;
+	padding-right: 2em;
+	}
+	
+	/* Secondary Content */
+	
+	#secondaryContent_3columns
+	{
+	float: right;
+	}
+	
+	#columnB_3columns
+	{
+	width: 13.0em;
+	float: left;
+	padding: 0em 2em 0.5em 2em;
+	border-left: dotted 1px #E1E1E1;
+	}
+	
+	#columnC_3columns
+	{
+	width: 13.0em;
+	float: left;
+	padding: 0em 0em 0.5em 2em;
+	border-left: dotted 1px #E1E1E1;
+	}
+	
+/* LAYOUT - 2 COLUMNS */
+
+	/* Primary content */
+	
+	#primaryContent_2columns
+	{
+	position: relative;
+	margin-right: 17em;
+	}
+	
+	#columnA_2columns
+	{
+	position: relative;
+	float: left;
+	width: 100%;
+	margin-right: -17em;
+	padding-right: 2em;
+	}
+	
+	/* Secondary Content */
+	
+	#secondaryContent_2columns
+	{
+	float: right;
+	}
+	
+	#columnC_2columns
+	{
+	width: 13.0em;
+	float: left;
+	padding: 0em 0em 0.5em 2em;
+	border-left: dotted 1px #E1E1E1;
+	}
+
+/* LAYOUT - COLUMNLESS */
+
+	/* Primary content */
+	
+	#primaryContent_columnless
+	{
+	position: relative;
+	}
+	
+	#columnA_columnless
+	{
+	position: relative;
+	width: 100%;
+	}
+
+/* FOOTER	COLORIZE BANDWIDTH */
+
+#rx_kbs { color: green; }
+
+#tx_kbs { color: red; }
diff --git a/html/html/themes/ipfire/images/n1.gif b/html/html/themes/ipfire/images/n1.gif
deleted file mode 100644
index 6eb5161..0000000
Binary files a/html/html/themes/ipfire/images/n1.gif and /dev/null differ
diff --git a/html/html/themes/ipfire/images/n4.gif b/html/html/themes/ipfire/images/n4.gif
deleted file mode 100644
index 8698525..0000000
Binary files a/html/html/themes/ipfire/images/n4.gif and /dev/null differ
diff --git a/html/html/themes/ipfire/images/spacer.gif b/html/html/themes/ipfire/images/spacer.gif
deleted file mode 100644
index 5bfd67a..0000000
Binary files a/html/html/themes/ipfire/images/spacer.gif and /dev/null differ
diff --git a/html/html/themes/ipfire/images/tux2.png b/html/html/themes/ipfire/images/tux2.png
new file mode 100644
index 0000000..cd84ad5
Binary files /dev/null and b/html/html/themes/ipfire/images/tux2.png differ
diff --git a/html/html/themes/ipfire/include/css/style-rounded.css b/html/html/themes/ipfire/include/css/style-rounded.css
new file mode 100644
index 0000000..cfc7df5
--- /dev/null
+++ b/html/html/themes/ipfire/include/css/style-rounded.css
@@ -0,0 +1,130 @@
+
+.bigbox {
+	margin-top: 1em;
+	border-radius: 8px 8px 8px 8px;
+	-webkit-border-radius: 8px 8px 8px 8px;
+}
+
+#main_inner .post {
+	border-radius: 8px 8px 8px 8px;
+	-webkit-border-radius: 8px 8px 8px 8px;
+}
+
+#cssmenu a {
+	border-radius: 8px 8px 8px 8px;
+	-webkit-border-radius: 8px 8px 8px 8px;
+}
+
+#cssmenu .has-sub ul li a {
+	border-radius: 7px 7px 7px 7px;
+}
+
+#cssmenu .has-sub ul li:hover a {
+	box-shadow: inset 0  5px 1px rgba(0, 0, 0, 0.15);
+	-webkit-box-shadow: inset 0  5px 1px rgba(0, 0, 0, 0.15);
+}
+
+/* Table */
+/* when using class='bordered' after tabletag */
+
+table {
+	*border-collapse: collapse; /* IE7 and lower */
+	border-spacing: 0;
+}
+
+.bordered th{
+	border-top: 1px solid grey;
+	border-bottom: 1px solid grey;
+	background: #cccccc;
+}
+
+.bordered th:first-child{
+	-moz-border-radius: 6px 0 0 0;
+	-webkit-border-radius: 6px 0 0 0;
+	border-radius: 6px 0 0 0;
+	border-left: 1px solid grey;
+	border-top: 1px solid grey;
+	border-bottom: 1px solid grey;
+}
+
+.bordered th:last-child {
+	-moz-border-radius: 0 6px 0 0;
+	-webkit-border-radius: 0 6px 0 0;
+	border-radius: 0 6px 0 0;
+	border-right: 1px solid grey;
+	border-top: 1px solid grey;
+	border-bottom: 1px solid grey;
+}
+
+.bordered th:only-child{
+	-moz-border-radius: 6px 6px 0 0;
+	-webkit-border-radius: 6px 6px 0 0;
+	border-radius: 6px 6px 0 0;
+	border: 1px solid grey;
+}
+
+.bordered tr:first-child td:first-child{
+	-moz-border-radius: 6px 0 0 0;
+	-webkit-border-radius: 6px 0 0 0;
+	border-radius: 6px 0 0 0;
+	border-left: 1px solid grey;
+	border-top: 1px solid grey;
+}
+
+.bordered tr:first-child td:last-child{
+	-moz-border-radius: 0 6px 0 0;
+	-webkit-border-radius: 0 6px 0 0;
+	border-radius: 0 6px 0 0;
+	border-top: 1px solid grey;
+}
+
+.bordered tr:first-child td:only-child{
+	-moz-border-radius: 6px 6px 0 0;
+	-webkit-border-radius: 6px 6px 0 0;
+	border-radius: 6px 6px 0 0;
+	border-left: 1px solid grey;
+	border-right: 1px solid grey;
+	border-top: 1px solid grey;
+}
+
+.bordered tr:first-child td{
+	border-top: 1px solid grey;
+}
+
+.bordered tr:last-child{
+	border-left: 1px solid grey;
+	border-right: 1px solid grey;
+}
+
+.bordered tr:last-child td:first-child {
+	-moz-border-radius: 0 0 0 6px;
+	-webkit-border-radius: 0 0 0 6px;
+	border-radius: 0 0 0 6px;
+	border-bottom: 1px solid grey;
+}
+
+.bordered tr:last-child td:last-child {
+	-moz-border-radius: 0 0 6px 0;
+	-webkit-border-radius: 0 0 6px 0;
+	border-radius: 0 0 6px 0;
+	border-bottom: 1px solid grey;
+}
+
+.bordered tr:last-child td:only-child {
+	-moz-border-radius: 0 0 6px 6px;
+	-webkit-border-radius: 0 0 6px 6px;
+	border-radius: 0 0 6px 6px;
+	border-bottom: 1px solid grey;
+}
+
+.bordered tr:last-child td {
+	border-bottom: 1px solid grey;
+}
+
+.bordered td:first-child {
+	border-left: 1px solid grey;
+}
+
+.bordered td:last-child {
+	border-right: 1px solid grey;
+}
diff --git a/html/html/themes/ipfire/include/css/style.css b/html/html/themes/ipfire/include/css/style.css
new file mode 100644
index 0000000..02b3fed
--- /dev/null
+++ b/html/html/themes/ipfire/include/css/style.css
@@ -0,0 +1,261 @@
+
+/* This controls the width of the fixed width layouts */
+
+.fixed {
+	width: 910px !important;
+}
+
+/* Basic Stuff */
+
+* {
+	margin: 0;
+	padding: 0;
+}
+
+html {
+	height: 100%;
+}
+
+body {
+	/* SVG as background image (IE9/Chrome/Safari/Opera) */
+	background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCAxIDEiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPgo8bGluZWFyR3JhZGllbnQgaWQ9Imc2ODQiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMTAwJSIgeTE9IjEwMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPgo8c3RvcCBzdG9wLWNvbG9yPSIjMDAwMDAwIiBvZmZzZXQ9IjAiLz48c3RvcCBzdG9wLWNvbG9yPSIjODgwNDAwIiBvZmZzZXQ9IjU3JSIvPgo8L2xpbmVhckdyYWRpZW50Pgo8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSJ1cmwoI2c2ODQpIiAvPgo8L3N2Zz4=);
+
+	background-image: linear-gradient(
+		bottom,
+		#000000 0%,
+		#880400 57%
+	);
+	background-image: -o-linear-gradient(
+		bottom,
+		#000000 0%,
+		#880400 57%
+	);
+	background-image: -moz-linear-gradient(
+		bottom,
+		#000000 0%,
+		#880400 57%
+	);
+	background-image: -webkit-linear-gradient(
+		bottom,
+		#000000 0%,
+		#880400 57
+	);
+	background-image: -ms-linear-gradient(
+		bottom,
+		#000000 0%,
+		#880400 57%
+	);
+	background-image: -webkit-gradient(
+		linear,
+		left bottom,
+		left top,
+		color-stop(0, #000000),
+		color-stop(0.57, #880400)
+	);
+	background-attachment: fixed;
+
+	font-size: 9pt;
+	font-family: "trebuchet ms", helvetica, sans-serif;
+}
+
+h1, h2, h3, h4, h5, h6 {
+	font-size: 20px;
+	font-weight: normal;
+	letter-spacing: -1px;
+	text-align: left;
+}
+
+h2, h3, h4, h5, h6 {
+	color: #66000F;
+}
+
+br.clear {
+	clear: both;
+}
+
+img {
+	padding: 3px;
+}
+
+a {
+	text-decoration: underline;
+	color: #d90000;
+}
+
+a:hover {
+	text-decoration: none;
+}
+
+p {
+	line-height: 1.8em;
+}
+
+hr {
+	margin: 0.3em 0 0.3em 0;
+}
+
+iframe {
+	border: 0;
+}
+
+.pull-right {
+	float: right !important;
+}
+
+/* Header */
+
+#header {
+	height: 70px;
+	margin: 0 auto;
+}
+
+/* Logo */
+
+#logo {
+	height: 65px;
+	margin-top: 1em;
+	background: url('../../images/tux2.png') no-repeat;
+}
+
+#logo h1 {
+	color: #fff;
+	font-size: 3.6em;
+	font-weight: bold;
+	padding-left: 1.7em;
+}
+
+/* Main */
+
+.bigbox {
+	margin: 0 auto;
+	margin-top: 0.5em;
+	padding: 1.5em 2em 0 2em;
+	background: #fff url('../../images/n2.gif') 0px 0px repeat-x;
+	border: 1px solid black;
+
+	border-radius: 3px 3px 3px 3px;
+	-webkit-border-radius: 3px 3px 3px 3px;
+}
+
+#main_inner {
+	padding-bottom: 1.5em;
+}
+
+#main_inner p {
+	text-align: justify;
+	margin-bottom: 2em;
+}
+
+#main_inner ul {
+	margin-bottom: 2em;
+}
+
+#main_inner h1 {
+	font-size: 1.8em;
+	margin-bottom: 1em;
+}
+
+#main_inner .post {
+	border: 1px solid silver;
+	padding: 1em 2em 1em 2em;
+	margin-bottom: 1em;
+	clear: both;
+}
+
+#main_inner .post h2 {
+	border-bottom: dotted 1px #e1e1e1;
+	font-size: 1.7em;
+	margin-bottom: 1em;
+}
+
+#footer {
+	height: 2.5em;
+	margin-bottom: 1em;
+}
+
+#footer a {
+	color: inherit;
+	text-decoration: none;
+}
+
+#footer a:hover {
+	text-decoration: underline;
+}
+
+input {
+	margin: 0.2em;
+}
+
+input.button {
+	background: #ca2f2f url('../../images/n3.gif') repeat-x;
+	color: #fff;
+	border: solid 1px #a94b4b;
+	font-weight: bold;
+	font-size: 0.8em;
+	height: 2.0em;
+}
+
+input.text {
+	border: solid 1px #f1f1f1;
+	padding: 0.25em;
+}
+
+#traffic {
+	float: right;
+	min-width: 20em;
+	line-height: 32px;
+}
+
+/* Menu */
+#cssmenu {
+	margin: 0 auto;
+	margin-top: 0;
+	padding-top: 0;
+	font-weight: 600;
+	height: 32px;
+	border: 1px solid black;
+}
+
+#cssmenu a {
+	color: #111111;
+	display: inline-block;
+	line-height: 32px;
+	padding: 0 1em;
+	text-decoration: none;
+}
+
+#cssmenu ul {
+	list-style: none;
+}
+
+#cssmenu > ul > li {
+	display: inline-block;
+}
+
+#cssmenu > ul > li.active a, #cssmenu > ul > li:hover > a {
+	color: white;
+	background: #aaaaaa;
+}
+
+#cssmenu .has-sub:hover > ul {
+	display: block;
+}
+
+#cssmenu .has-sub ul {
+	display: none;
+	position: absolute;
+}
+
+#cssmenu .has-sub ul li a {
+	min-width: 12em;
+	background: #ffffff;
+	color: grey;
+	display: block;
+	line-height: 40%;
+	padding: 12px 5px;
+	border: 1px solid black;
+}
+
+#cssmenu .has-sub ul li:hover a {
+	background: #dddddd;
+}
diff --git a/html/html/themes/ipfire/include/functions.pl b/html/html/themes/ipfire/include/functions.pl
index 2707593..0ead967 100644
--- a/html/html/themes/ipfire/include/functions.pl
+++ b/html/html/themes/ipfire/include/functions.pl
@@ -18,397 +18,232 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
 #                                                                             #
 ###############################################################################
+#                                                                             #
+# Theme file for IPfire (based on ipfire theme)                               #
+# Author kay-michael köhler kmk <michael(a)koehler.tk>                          #
+#                                                                             #
+# Version 1.0	March, 6th 2013                                               #
+###############################################################################
+#                                                                             #
+# Modyfied theme by a.marx(a)ipfire.org January 2014                            #
+#                                                                             #
+# Cleanup code, deleted unused code and rewrote the rest to get a new working #
+# IPFire default theme.                                                       #
+###############################################################################
 
-sub showmenu() {
-    print <<EOF
-                <div id="menu">
-                        <ul>
-EOF
-;
-    foreach my $k1 ( sort keys %$menu ) {
-        if (! $menu->{$k1}{'enabled'}) {
-            next;
-        }
-        my $link = getlink($menu->{$k1});
-        if ($link eq '') {
-            next;
-        }
-        if (! is_menu_visible($link)) {
-            next;
-        }
-        if ($menu->{$k1}->{'selected'}) {
-            print "<li><a href=\"$link\" class=\"active\">$menu->{$k1}{'caption'}</a></li>";
-        } else {
-            print "<li><a href=\"$link\">$menu->{$k1}{'caption'}</a></li>";
-        }
-    }
-    print <<EOF
-                        </ul>
-                </div>
-EOF
-;    
-}
+require "${General::swroot}/lang.pl";
 
-sub getselected($) {
-    my $root = shift;
-    if (!$root) {
-        return 0;
-    }
-
-    foreach my $item (%$root) {
-        if ($root->{$item}{'selected'}) {
-            return $root->{$item};
-        }
-    }
+###############################################################################
+#
+# print menu html elements for submenu entries
+# @param submenu entries
+sub showsubmenu() {
+	my $submenus = shift;
+	
+	print "<ul>";
+	foreach my $item (sort keys %$submenus) {
+		$link = getlink($submenus->{$item});
+		next if (!is_menu_visible($link) or $link eq '');
+
+		my $subsubmenus = $submenus->{$item}->{'subMenu'};
+
+		if ($subsubmenus) {
+			print '<li class="has-sub ">';
+		} else {
+			print '<li>';
+		}
+		print '<a href="'.$link.'">'.$submenus->{$item}->{'caption'}.'</a>';
+
+		&showsubmenu($subsubmenus) if ($subsubmenus);
+		print '</li>';
+	}
+	print "</ul>"
 }
 
-sub showsubsection($$) {
-    my $root = shift;
-
-    if (! $root) {
-        return;
-    }
-    my $selected = getselected($root);
-    if (! $selected) {
-        return;
-    }
-    my $submenus = $selected->{'subMenu'};
-    if (! $submenus) {
-        return;
-    }
-
-    print <<EOF
-        <h4><span>Side</span>menu</h4>
-        <ul class="links">
-EOF
-;
-    foreach my $item (sort keys %$submenus) {
-        my $hash = $submenus->{$item};
-        if (! $hash->{'enabled'}) {
-            next;
-        }
-        my $link = getlink($hash);
-        if ($link eq '') {
-            next;
-        }
-        if (! is_menu_visible($link)) {
-            next;
-        }
-        if ($hash->{'selected'}) {
-            print '<li class="selected">';
-        } else {
-            print '<li>';
-        }
-
-        print "<a href=\"$link\">$hash->{'caption'}</a></li>";
-    }
-
-    print <<EOF
-        </ul>
+###############################################################################
+#
+# print menu html elements
+sub showmenu() {
+	print '<div id="cssmenu" class="bigbox fixed">';
+
+	if ($settings{'SPEED'} ne 'off') {
+		print <<EOF;
+			<div id='traffic'>
+				<strong>Traffic:</strong>
+				In  <span id='rx_kbs'>--.-- Bit/s</span> &nbsp;
+				Out <span id='tx_kbs'>--.-- Bit/s</span>
+			</div>
 EOF
-;
-}
+	}
 
+	print "<ul>";
+	foreach my $k1 ( sort keys %$menu ) {
+		$link = getlink($menu->{$k1});
+		next if (!is_menu_visible($link) or $link eq '');
+		print '<li class="has-sub "><a><span>'.$menu->{$k1}->{'caption'}.'</span></a>';
+		my $submenus = $menu->{$k1}->{'subMenu'};
+		&showsubmenu($submenus) if ($submenus);
+		print "</li>";
+	}
 
-sub showsubsubsection($) {
-    my $root = shift;
-    if (!$root) {
-        return;
-    }
-    my $selected = getselected($root);
-    if (! $selected) {
-        return
-    }
-    if (! $selected->{'subMenu'}) {
-        return
-    }
-
-    showsubsection($selected->{'subMenu'}, 'menu-subtop');
+	print "</ul></div>";
 }
 
+###############################################################################
+#
+# print page opening html layout
+# @param page title
+# @param boh
+# @param extra html code for html head section
+# @param suppress menu option, can be numeric 1 or nothing.
+#		 menu will be suppressed if param is 1
 sub openpage {
-    my $title = shift;
-    my $boh = shift;
-    my $extrahead = shift;
-
-    @URI=split ('\?',  $ENV{'REQUEST_URI'} );
-    &General::readhash("${swroot}/main/settings", \%settings);
-    &genmenu();
-
-    my $h2 = gettitle($menu);
-
-    $title = "IPFire - $title";
-    if ($settings{'WINDOWWITHHOSTNAME'} eq 'on') {
-        $title =  "$settings{'HOSTNAME'}.$settings{'DOMAINNAME'} - $title"; 
-    }
-
-    print <<END
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
-<html xmlns='http://www.w3.org/1999/xhtml'>
-<head>
-		<title>$title</title>
-    $extrahead
-END
-;
-    if ($settings{'FX'} ne 'off') {
-    print <<END
-    <meta http-equiv="Page-Enter" content="blendTrans(Duration=0.5,Transition=12)" />
-    <meta http-equiv="Page-Exit" content="blendTrans(Duration=0.5,Transition=12)" />
-END
-;
-    }
-    print <<END
-    <link rel="shortcut icon" href="/favicon.ico" />
-    <link rel="stylesheet" type="text/css" href="/themes/ipfire/include/style.css" />
-    <script language="javascript" type="text/javascript">
-      
-        function swapVisibility(id) {
-            el = document.getElementById(id);
-            if(el.style.display != 'block') {
-                el.style.display = 'block'
-            }
-            else {
-                el.style.display = 'none'
-            }
-        }
-    </script>
+	my $title = shift;
+	my $boh = shift;
+	my $extrahead = shift;
+	my $suppressMenu = shift;
+	my @tmp = split(/\./, basename($0));
+	my $scriptName = @tmp[0];
+
+	@URI=split ('\?',  $ENV{'REQUEST_URI'} );
+	&General::readhash("${swroot}/main/settings", \%settings);
+	&genmenu();
+
+	my $headline = "IPFire";
+	if ($settings{'WINDOWWITHHOSTNAME'} eq 'on') {
+		$headline =  "$settings{'HOSTNAME'}.$settings{'DOMAINNAME'}";
+	}
+
+	my @stylesheets = ("style.css");
+	if ($THEME_NAME eq "ipfire-rounded") {
+		push(@stylesheets, "style-rounded.css");
+	}
+
+print <<END;
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+	<head>
+	<title>$headline - $title</title>
+	$extrahead
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+	<link rel="shortcut icon" href="/favicon.ico" />
+	<script type="text/javascript" src="/include/jquery.js"></script>
 END
-;
+
+	foreach my $stylesheet (@stylesheets) {
+		print "<link href=\"/themes/ipfire/include/css/$stylesheet\" rel=\"stylesheet\" type=\"text/css\" />\n";
+	}
+
 if ($settings{'SPEED'} ne 'off') {
 print <<END
-    <script type="text/javascript" src="/include/jquery.js"></script>
-    <script type="text/javascript">
-        var t_current;
-        var t_last;
-        var rxb_current;
-        var rxb_last;
-        var txb_current;
-        var txb_last;
-	function refreshInetInfo() {
-		\$.ajax({
-                	url: '/cgi-bin/speed.cgi',
-                        success: function(xml){
-                        t_current = new Date();
-                        var t_diff = t_current - t_last;
-                        t_last = t_current;
-
-                        rxb_current = \$("rxb",xml).text();
-                        var rxb_diff = rxb_current - rxb_last;
-                        rxb_last = rxb_current;
-
-                        var rx_kbs = rxb_diff/t_diff;
-                        rx_kbs = Math.round(rx_kbs*10)/10;
-
-                        txb_current = \$("txb",xml).text();
-                        var txb_diff = txb_current - txb_last;
-                        txb_last = txb_current;
-
-                        var tx_kbs = txb_diff/t_diff;
-                        tx_kbs = Math.round(tx_kbs*10)/10;
-
-                        \$("#rx_kbs").text(rx_kbs + ' kb/s');
-                        \$("#tx_kbs").text(tx_kbs + ' kb/s');
-                        }
-        	});
-                window.setTimeout("refreshInetInfo()", 3000);
-	}
-	\$(document).ready(function(){
-		refreshInetInfo();
-	});
-    </script>
-  </head>
-  <body>
+	<script type="text/javascript" src="/themes/ipfire/include/js/refreshInetInfo.js"></script>
 END
 ;
 }
-else {
-print "</head><body>";}
-print <<END
-<!-- IPFIRE HEADER -->
 
-<div id="header">
-
-        <div id="header_inner" class="fixed">
-
-                <div id="logo">
+print <<END
+	</head>
+	<body>
+		<div id="header" class="fixed">
+			<div id="logo">
 END
 ;
-    if ($settings{'WINDOWWITHHOSTNAME'} eq 'on') {
-        print "<h1><span>$settings{'HOSTNAME'}.$settings{'DOMAINNAME'}</span></h1><br />"; 
-    } else {
-                                print "<h1><span>IPFire</span></h1><br />";
-                }
-                print <<END
-                        <h2>$h2</h2>
-                </div>
+	if ($settings{'WINDOWWITHHOSTNAME'} ne 'off') {
+		print "<h1>$settings{'HOSTNAME'}.$settings{'DOMAINNAME'}</h1>";
+	} else {
+		print "<h1>IPFire</h1>";
+	}
 
+print <<END
+			</div>
+		</div>
 END
 ;
-        &showmenu();
 
-print <<END     
-        </div>
-</div>
+&showmenu() if ($suppressMenu != 1);
 
-<div id="main">
-        <div id="main_inner" class="fixed">
-                <div id="primaryContent_2columns">
-                        <div id="columnA_2columns">
+print <<END
+	<div class="bigbox fixed">
+		<div id="main_inner" class="fixed">
+			<h1>$title</h1>
 END
 ;
 }
 
+###############################################################################
+#
+# print page opening html layout without menu
+# @param page title
+# @param boh
+# @param extra html code for html head section
 sub openpagewithoutmenu {
-    my $title = shift;
-    my $boh = shift;
-    my $extrahead = shift;
-
-    @URI=split ('\?',  $ENV{'REQUEST_URI'} );
-    &General::readhash("${swroot}/main/settings", \%settings);
-    &genmenu();
-
-    my $h2 = gettitle($menu);
-
-    $title = "IPFire - $title";
-    if ($settings{'WINDOWWITHHOSTNAME'} eq 'on') {
-        $title =  "$settings{'HOSTNAME'}.$settings{'DOMAINNAME'} - $title"; 
-    }
-
-    print <<END
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
-<html xmlns='http://www.w3.org/1999/xhtml'>
-<head>
-		<title>$title</title>
-		$extrahead
-END
-;
-    if ($settings{'FX'} ne 'off') {
-    print <<END
-    <meta http-equiv="Page-Enter" content="blendTrans(Duration=0.5,Transition=12)" />
-    <meta http-equiv="Page-Exit" content="blendTrans(Duration=0.5,Transition=12)" />
-END
-;
-    }
-    print <<END
-    <link rel="shortcut icon" href="/favicon.ico" />
-    <link rel="stylesheet" type="text/css" href="/include/style.css" />
-    <script language="javascript" type="text/javascript">
-      
-        function swapVisibility(id) {
-            el = document.getElementById(id);
-            if(el.style.display != 'block') {
-                el.style.display = 'block'
-            }
-            else {
-                el.style.display = 'none'
-            }
-        }
-    </script>
-
-  </head>
-  <body>
-<!-- IPFIRE HEADER -->
-
-<div id="header">
-
-        <div id="header_inner" class="fixed">
-
-                <div id="logo">
-                        <h1><span>IPFire</span></h1>
-                        <h2>$h2</h2>
-                </div>  
-        </div>
-</div>
-
-<div id="main">
-        <div id="main_inner" class="fixed">
-                <div id="primaryContent_2columns">
-                        <div id="columnA_2columns">
-END
-;
+	openpage(shift,shift,shift,1);
+	return;
 }
 
-sub closepage () {
-	my $status = &connectionstatus();
-	my $uptime = `/usr/bin/uptime|cut -d \" \" -f 4-`;
-	$uptime =~ s/year(s|)/$Lang::tr{'year'}/;
-	$uptime =~ s/month(s|)/$Lang::tr{'month'}/;
-	$uptime =~ s/day(s|)/$Lang::tr{'day'}/;
-	$uptime =~ s/user(s|)/$Lang::tr{'user'}/;
-	$uptime =~ s/load average/$Lang::tr{'uptime load average'}/;     
-				
-    print <<END
-                        </div>
-                </div>
-
-                <div id="secondaryContent_2columns">
-                
-                        <div id="columnC_2columns">
-END
-;
-    &showsubsection($menu);
-    &showsubsubsection($menu);
-
-        print <<END                     
-				</div>
-            </div>
-            <br class="clear" />    
-			<div id="footer" class="fixed">
-				<b>Status:</b> $status <b>Uptime:</b> $uptime
-END
-;
-if ($settings{'SPEED'} ne 'off') {
-print <<END                        
-                        <br />
-                                <b>$Lang::tr{'bandwidth usage'}:</b>
-				$Lang::tr{'incoming'}: <span id="rx_kbs"></span>&nbsp;$Lang::tr{'outgoing'}: <span id="tx_kbs"></span>
+###############################################################################
+#
+# print page closing html layout
 
-END
-;
-}
-print <<END
-                </div>
-        </div>
-</div>
+sub closepage () {
+	open(FILE, "</etc/system-release");
+	my $system_release = <FILE>;
+	$system_release =~ s/core/Core Update/;
+	close(FILE);
+
+print <<END;
+		</div>
+	</div>
+
+	<div id="footer" class='bigbox fixed'>
+		<span class="pull-right">
+			<a href="http://www.ipfire.org/" target="_blank"><strong>IPFire.org</strong></a> &bull;
+			<a href="http://www.ipfire.org/donate" target="_blank">$Lang::tr{'support donation'}</a>
+		</span>
+
+		<strong>$system_release</strong>
+	</div>
 </body>
 </html>
 END
 ;
 }
 
-sub openbigbox
-{
+###############################################################################
+#
+# print big box opening html layout
+sub openbigbox {
 }
 
-sub closebigbox
-{
+###############################################################################
+#
+# print big box closing html layout
+sub closebigbox {
 }
 
-sub openbox
-{
-        $width = $_[0];
-        $align = $_[1];
-        $caption = $_[2];
-
-        print <<END
-<!-- openbox -->
-        <div class="post" align="$align">
-END
-;
-
-        if ($caption) { print "<h3>$caption</h3>\n"; } else { print "&nbsp;"; }
+###############################################################################
+#
+# print box opening html layout
+# @param page width
+# @param page align
+# @param page caption
+sub openbox {
+	$width = $_[0];
+	$align = $_[1];
+	$caption = $_[2];
+
+	print "<div class='post' align='$align'>\n";
+
+	if ($caption) {
+		print "<h2>$caption</h2>\n";
+	}
 }
 
-sub closebox
-{
-        print <<END
-        </div>
-        <br class="clear" />
-        <!-- closebox -->
-END
-;
+###############################################################################
+#
+# print box closing html layout
+sub closebox {
+	print "</div>";
 }
 
 1;
diff --git a/html/html/themes/ipfire/include/js/refreshInetInfo.js b/html/html/themes/ipfire/include/js/refreshInetInfo.js
new file mode 100644
index 0000000..259f86e
--- /dev/null
+++ b/html/html/themes/ipfire/include/js/refreshInetInfo.js
@@ -0,0 +1,69 @@
+/* refreshInetInfo.js
+* functions for retrieving status information via jQuery
+* Modified: March 6th, 2013 by michael(a)koehler.tk
+* Authors: 	IPFire Team (info(a)ipfire.org)
+			Kay-Michael Köhler (michael(a)koehler.tk)
+* Visit http://www.ipfire.org/
+*/
+
+var t_current;
+var t_last = 0;
+var rxb_current;
+var rxb_last = 0;
+var txb_current;
+var txb_last = 0;
+
+$(document).ready(function(){
+	refreshInetInfo();
+});
+
+function refreshInetInfo() {
+	$.ajax({
+		url: '/cgi-bin/speed.cgi',
+		success: function(xml) {
+			t_current = new Date();
+			var t_diff = t_current - t_last;
+
+			rxb_current = $("rxb", xml).text();
+			var rxb_diff = rxb_current - rxb_last;
+			rxb_last = rxb_current;
+
+			var rx_bits = rxb_diff * 8192 / t_diff;
+			var rx_fmt = format_bytes(rx_bits);
+
+			txb_current = $("txb", xml).text();
+			var txb_diff = txb_current - txb_last;
+			txb_last = txb_current;
+
+			var tx_bits = txb_diff * 8192 / t_diff;
+			var tx_fmt = format_bytes(tx_bits);
+
+			if (t_last != 0) {
+				$("#rx_kbs").text(rx_fmt);
+				$("#tx_kbs").text(tx_fmt);
+			}
+
+			t_last = t_current;
+		}
+	});
+
+	window.setTimeout("refreshInetInfo()", 2000);
+}
+
+function format_bytes(bytes) {
+	var units = ["Bit/s", "kBit/s", "MBit/s", "GBit/s", "TBit/s"];
+
+	var unit = units[0];
+	for (var i = 1; i < units.length; i++) {
+		if (bytes < 1024)
+			break;
+
+		unit = units[i];
+		bytes /= 1024;
+	}
+
+	// Round the output.
+	bytes = bytes.toFixed(2);
+
+	return bytes + " " + unit;
+}
diff --git a/html/html/themes/ipfire/include/style.css b/html/html/themes/ipfire/include/style.css
deleted file mode 100644
index 2461a14..0000000
--- a/html/html/themes/ipfire/include/style.css
+++ /dev/null
@@ -1,441 +0,0 @@
-/*
-
-	Nonzero1.0 by nodethirtythree design
-	http://www.nodethirtythree.com
-	missing in a maze
-
-*/
-
-/* This controls the width of the fluid width layouts */
-
-div.fluid
-{
-width: 90% !important;
-}
-
-/* This controls the width of the fixed width layouts */
-
-div.fixed
-{
-width: 950px !important;
-}
-
-/* Basic Stuff */
-
-*
-{
-margin: 0em;
-padding: 0em;
-}
-
-body
-{
-background-color: #fff;
-color: #585858;
-font-size: 9pt;
-font-family: "trebuchet ms", helvetica, sans-serif;
-}
-
-h1,h2,h3,h4,h5,h6
-{
-font-weight: normal;
-letter-spacing: -1px;
-text-transform: lowercase;
-text-align: left;
-}
-
-h3,h4,h5,h6
-{
-color: #66000F;
-}
-
-h1 span
-{
-font-weight: bold;
-}
-
-h3 span
-{
-font-weight: bold;
-}
-
-h4 span
-{
-font-weight: bold;
-}
-
-br.clear
-{
-clear: both;
-}
-
-img
-{
-padding: 3px;
-#border: solid 1px #e1e1e1;
-}
-
-img.floatTL
-{
-float: left;
-margin-right: 1.5em;
-margin-bottom: 1.5em;
-margin-top: 0.5em;
-}
-
-a
-{
-text-decoration: underline;
-color: #D90000;
-}
-
-a:hover
-{
-text-decoration: none;
-}
-
-ul.links
-{
-list-style: none;
-}
-
-ul.links li
-{
-line-height: 2em;
-}
-
-ul.links li.first
-{
-}
-
-p
-{
-line-height: 1.8em;
-}
-
-/* Header */
-
-#header
-{
-width:100%;
-height:122px;
-background: #440000 url('/themes/ipfire/images/n1.gif') repeat-x;
-}
-
-#header_inner
-{
-position: relative;
-width: 950px;
-height:122px;
-margin: 0 auto;
-}
-
-/* Logo */
-
-#logo
-{
-position: absolute;
-bottom: 0.6em;
-}
-
-#logo h1
-{
-display: inline;
-color: #fff;
-font-size: 2.6em;
-}
-
-#logo h2
-{
-display: inline;
-padding-left: 0.5em;
-color: #E5CCD0;
-font-size: 1.0em;
-}
-
-/* Menu */
-
-#menu
-{
-position: absolute;
-right: 0em;
-bottom: 0em;
-}
-
-#menu ul
-{
-list-style: none;
-}
-
-#menu li
-{
-float: left;
-}
-
-#menu li a
-{
-margin-left: 0.5em;
-display: block;
-padding: 1.1em 1.4em 1.0em 1.4em;
-background: #fff url('/themes/ipfire/images/n4.gif') repeat-x;
-border: solid 1px #fff;
-color: #616161;
-font-weight: bold;
-font-size: 1.0em;
-text-transform: lowercase;
-text-decoration: none;
-}
-
-#menu li a.active
-{
-background: #CA2F2F url('/themes/ipfire/images/n3.gif') repeat-x;
-color: #fff;
-border: solid 1px #A94B4B;
-}
-
-/* Main */
-
-#main
-{
-background: #fff url('/themes/ipfire/images/n2.gif') 0px 1px repeat-x;
-}
-
-#main_inner p
-{
-text-align: justify;
-margin-bottom: 2.0em;
-}
-
-#main_inner ul
-{
-margin-bottom: 2.0em;
-}
-
-#main_inner
-{
-position: relative;
-width: 950px;
-margin: 0 auto;
-padding-top: 3.5em;
-}
-
-#main_inner h3,h4
-{
-border-bottom: dotted 1px #E1E1E1;
-position: relative;
-}
-
-#main_inner h3
-{
-font-size: 2.1em;
-padding-bottom: 0.1em;
-margin-bottom: 0.8em;
-}
-
-#main_inner h4
-{
-font-size: 1.2em;
-padding-bottom: 0.175em;
-margin-bottom: 1.4em;
-margin-top: 0.95em;
-}
-
-#main_inner .post
-{
-position: relative;
-}
-
-#main_inner .post h3
-{
-position: relative;
-font-size: 1.7em;
-padding-bottom: 0.4em;
-}
-
-#main_inner .post ul.post_info
-{
-list-style: none;
-position: absolute;
-top: 3em;
-font-size: 0.8em;
-}
-
-#main_inner .post ul.post_info li
-{
-background-position: 0em 0.2em;
-background-repeat: no-repeat;
-display: inline;
-padding-left: 18px;
-}
-
-#main_inner .post ul.post_info li.date
-{
-background-image: url('/themes/ipfire/images/n5.gif');
-}
-
-#main_inner .post ul.post_info li.comments
-{
-background-image: url('/themes/ipfire/images/n6.gif');
-margin-left: 1.1em;
-}
-
-/* Footer */
-
-#footer
-{
-width: 950px;
-margin: 0 auto;
-text-align: center;
-clear: both;
-border-top: dotted 1px #E1E1E1;
-margin-top: 1.0em;
-margin-bottom: 1.0em;
-padding-top: 1.0em;
-text-transform: lowercase;
-}
-
-/* Search */
-
-input
-{
-margin: 0.2em;
-}
-
-input.button
-{
-background: #CA2F2F url('/themes/ipfire/images/n3.gif') repeat-x;
-color: #fff;
-border: solid 1px #A94B4B;
-font-weight: bold;
-text-transform: lowercase;
-font-size: 0.8em;
-height: 2.0em;
-}
-
-input.text
-{
-border: solid 1px #F1F1F1;
-font-size: 1.0em;
-padding: 0.25em 0.25em 0.25em 0.25em;
-}
-
-#search
-{
-position: relative;
-width: 100%;
-margin-bottom: 2.0em;
-}
-
-#search input.text
-{
-position: absolute;
-top: 0em;
-left: 0em;
-width: 9.5em;
-}
-
-#search input.button
-{
-position: absolute;
-top: 0em;
-right: 0em;
-min-width: 2.0em;
-max-width: 2.5em;
-}
-
-/* LAYOUT - 3 COLUMNS */
-
-	/* Primary content */
-	
-	#primaryContent_3columns
-	{
-	position: relative;
-	margin-right: 34em;
-	}
-	
-	#columnA_3columns
-	{
-	position: relative;
-	float: left;
-	width: 100%;
-	margin-right: -34em;
-	padding-right: 2em;
-	}
-	
-	/* Secondary Content */
-	
-	#secondaryContent_3columns
-	{
-	float: right;
-	}
-	
-	#columnB_3columns
-	{
-	width: 13.0em;
-	float: left;
-	padding: 0em 2em 0.5em 2em;
-	border-left: dotted 1px #E1E1E1;
-	}
-	
-	#columnC_3columns
-	{
-	width: 13.0em;
-	float: left;
-	padding: 0em 0em 0.5em 2em;
-	border-left: dotted 1px #E1E1E1;
-	}
-	
-/* LAYOUT - 2 COLUMNS */
-
-	/* Primary content */
-	
-	#primaryContent_2columns
-	{
-	position: relative;
-	margin-right: 17em;
-	}
-	
-	#columnA_2columns
-	{
-	position: relative;
-	float: left;
-	width: 100%;
-	margin-right: -17em;
-	padding-right: 2em;
-	}
-	
-	/* Secondary Content */
-	
-	#secondaryContent_2columns
-	{
-	float: right;
-	}
-	
-	#columnC_2columns
-	{
-	width: 13.0em;
-	float: left;
-	padding: 0em 0em 0.5em 2em;
-	border-left: dotted 1px #E1E1E1;
-	}
-
-/* LAYOUT - COLUMNLESS */
-
-	/* Primary content */
-	
-	#primaryContent_columnless
-	{
-	position: relative;
-	}
-	
-	#columnA_columnless
-	{
-	position: relative;
-	width: 100%;
-	}
-
-/* FOOTER	COLORIZE BANDWIDTH */
-
-#rx_kbs { color: green; }
-
-#tx_kbs { color: red; }
diff --git a/html/html/themes/maniac/include/functions.pl b/html/html/themes/maniac/include/functions.pl
index 0bb1d6e..47dbcb0 100644
--- a/html/html/themes/maniac/include/functions.pl
+++ b/html/html/themes/maniac/include/functions.pl
@@ -149,16 +149,6 @@ sub openpage {
 <head>
 		<title>$title</title>
     $extrahead
-END
-;
-    if ($settings{'FX'} ne 'off') {
-    print <<END
-    <meta http-equiv="Page-Enter" content="blendTrans(Duration=0.5,Transition=12)" />
-    <meta http-equiv="Page-Exit" content="blendTrans(Duration=0.5,Transition=12)" />
-END
-;
-    }
-    print <<END
     <link rel="shortcut icon" href="/favicon.ico" />
     <link rel="stylesheet" type="text/css" href="/themes/maniac/include/style.css" />
     <script language="javascript" type="text/javascript">
diff --git a/langs/de/cgi-bin/de.pl b/langs/de/cgi-bin/de.pl
index d89a4bd..01cd3f6 100644
--- a/langs/de/cgi-bin/de.pl
+++ b/langs/de/cgi-bin/de.pl
@@ -1946,6 +1946,7 @@
 'successfully refreshed updates list' => 'Update-Liste erfolgreich aktualisiert.',
 'summaries kept' => 'Zusammenfassungen aufheben für',
 'sunday' => 'Sonntag',
+'support donation' => 'Unterstützen Sie das IPFire-Projekt mit Ihrer Spende',
 'swap' => 'Swap',
 'swap usage per' => 'Nutzung von Auslagerungsspeicher (Swap) pro',
 'system' => 'System',
diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl
index 5754c7d..dc38129 100644
--- a/langs/en/cgi-bin/en.pl
+++ b/langs/en/cgi-bin/en.pl
@@ -1980,6 +1980,7 @@
 'successfully refreshed updates list' => 'Successfully refreshed updates list.',
 'summaries kept' => 'Keep summaries for',
 'sunday' => 'Sunday',
+'support donation' => 'Support the IPFire project with your donation',
 'swap' => 'Swap',
 'swap usage per' => 'Swap usage per',
 'system' => 'System',
diff --git a/lfs/apache2 b/lfs/apache2
index f50332b..a3c7ada 100644
--- a/lfs/apache2
+++ b/lfs/apache2
@@ -98,6 +98,7 @@ ifeq "$(PASS)" "C"
 	chmod -R 755 /srv/web/ipfire/cgi-bin
 	chmod -R 644 /srv/web/ipfire/html
 	chmod 755 /srv/web/ipfire/html /srv/web/ipfire/html/{index.cgi,redirect.cgi,dial.cgi,images,include,themes,themes/*,themes/*/*}
+	ln -svf ipfire /srv/web/ipfire/html/themes/ipfire-rounded
 
 	# Reset permissions of redirect templates directories
 	find /srv/web/ipfire/html/redirect-templates -type d | xargs chmod -v 755


hooks/post-receive
--
IPFire 2.x development tree

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2014-01-05 20:16 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-01-05 20:16 [git.ipfire.org] IPFire 2.x development tree branch, fifteen, updated. 9027a25d92afbbb4486c17deac66b4c439e80520 git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox