[1/2] dhcp.cgi: Fix for bug#10629 - update bgcolor to css

Message ID 20230213175515.18840-1-adolf.belka@ipfire.org
State Superseded
Headers
Series [1/2] dhcp.cgi: Fix for bug#10629 - update bgcolor to css |

Commit Message

Adolf Belka Feb. 13, 2023, 5:55 p.m. UTC
  - bgcolor was deprecated in HTML 4.01 and is not supported by HTML 5
- The orange colour for IP's that are outside the IPFire green and blue subnets does not
   work on any browser I am using.
- I used the CSS approach that @Leo used in the Zone Configuration cgi page
- This patch changes all existing bgcolor entries to the css based background-color
- Tested on my vm testbed and confirmed to work. The Orange colour for IP's outside of
   the subnet now shows up.

Tested-by: Adolf Belka <adolf.belka@ipfire.org>
Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
---
 html/cgi-bin/dhcp.cgi | 44 ++++++++++++++++++++++++++++++++-----------
 1 file changed, 33 insertions(+), 11 deletions(-)
  

Comments

Bernhard Bitsch Feb. 13, 2023, 9:42 p.m. UTC | #1
Reviewed-by: Bernhard Bitsch <bbitsch@ipfire.org>

Am 13.02.2023 um 18:55 schrieb Adolf Belka:
> - bgcolor was deprecated in HTML 4.01 and is not supported by HTML 5
> - The orange colour for IP's that are outside the IPFire green and blue subnets does not
>     work on any browser I am using.
> - I used the CSS approach that @Leo used in the Zone Configuration cgi page
> - This patch changes all existing bgcolor entries to the css based background-color
> - Tested on my vm testbed and confirmed to work. The Orange colour for IP's outside of
>     the subnet now shows up.
> 
> Tested-by: Adolf Belka <adolf.belka@ipfire.org>
> Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
> ---
>   html/cgi-bin/dhcp.cgi | 44 ++++++++++++++++++++++++++++++++-----------
>   1 file changed, 33 insertions(+), 11 deletions(-)
> 
> diff --git a/html/cgi-bin/dhcp.cgi b/html/cgi-bin/dhcp.cgi
> index 125713285..2d162b204 100644
> --- a/html/cgi-bin/dhcp.cgi
> +++ b/html/cgi-bin/dhcp.cgi
> @@ -113,6 +113,27 @@ foreach my $itf (@ITFs) {
>   &General::readhash("${General::swroot}/time/settings", \%timesettings);
>   &General::readhash("/srv/web/ipfire/html/themes/ipfire/include/colors.txt", \%color);
>   
> +###--- HTML HEAD ---###
> +my $extraHead = <<END
> +<style>
> +	.row-color20 {
> +		background-color: $color{'color20'};
> +	}
> +	.row-color22 {
> +		background-color: $color{'color22'};
> +	}
> +	.row-colouryellow {
> +		background-color: $Header::colouryellow;
> +	}
> +	.cell-orange {
> +		background-color: orange;
> +	}		
> +</style>
> +END
> +;
> +###--- END HTML HEAD ---###
> +
> +
>   #Get GUI values
>   &Header::getcgihash(\%dhcpsettings);
>   
> @@ -547,7 +568,8 @@ if ($dhcpsettings{'ACTION'} eq '' ) { # First launch from GUI
>       $dhcpsettings{'ADVOPT_ENABLED'} = 'on';
>       }
>   
> -&Header::openpage($Lang::tr{'dhcp configuration'}, 1, '');
> +### START PAGE ###
> +&Header::openpage($Lang::tr{'dhcp configuration'}, 1, $extraHead);
>   &Header::openbigbox('100%', 'left', '', $errormessage);
>   
>   if ($errormessage) {
> @@ -843,11 +865,11 @@ foreach my $line (@current1) {
>       }
>   
>       if ($dhcpsettings{'KEY1'} eq $key) {
> -	print "<tr bgcolor='${Header::colouryellow}'>";
> +	print "<tr class='row-colouryellow'>";
>       } elsif ($key % 2) {
> -	print "<tr bgcolor='$color{'color22'}'>";
> +	print "<tr class='row-color22'>";
>       } else {
> -	print "<tr bgcolor='$color{'color20'}'>";
> +	print "<tr class='row-color20'>";
>       }
>   
>       print <<END
> @@ -1069,13 +1091,13 @@ foreach my $line (@current2) {
>   
>       if ($dhcpsettings{'KEY2'} eq $key) {
>   	print "<tr>";
> -	$col="bgcolor='${Header::colouryellow}'";
> +	$col="class='row-colouryellow'";
>       } elsif ($key % 2) {
>   	print "<tr>";
> -	$col="bgcolor='$color{'color20'}'";
> +	$col="class='row-color20'";
>       } else {
>   	print "<tr>";
> -	$col="bgcolor='$color{'color22'}'";
> +	$col="class='row-color22'";
>       }
>       my $TAG0 = '';
>       my $TAG1 = '';
> @@ -1091,12 +1113,12 @@ foreach my $line (@current2) {
>   	$TAG3 = '</b>';
>       }
>       if ($ipoutside{$temp[1]} > 0) {
> -	$TAG4 = "bgcolor='orange'" if ($dhcpsettings{'KEY2'} ne $key);
> +	$TAG4 = "class='cell-orange'" if ($dhcpsettings{'KEY2'} ne $key);
>       }
>   
>       print <<END
>   <td align='center' $col>$TAG2$temp[0]$TAG3</td>
> -<td align='center' $col $TAG4>$TAG0$temp[1]$TAG1</td>
> +<td align='center' $TAG4 $col>$TAG0$temp[1]$TAG1</td>
>   <td align='center' $col>$temp[6]&nbsp;</td>
>   <td align='center' $col>$temp[3]&nbsp;</td>
>   <td align='center' $col>$temp[4]&nbsp;</td>
> @@ -1153,8 +1175,8 @@ print <<END
>   </tr>
>   <tr>
>   	<td>&nbsp;</td>
> -	<td bgcolor='orange'>&nbsp;</td>
> -	<td class='base'>$Lang::tr{'ip address outside subnets'}</td>
> +	<td>&nbsp;</td>
> +	<td class='base cell-orange'>$Lang::tr{'ip address outside subnets'}</td>
>   	<td>&nbsp;</td>
>   	<td>&nbsp;</td>
>   	$dup
  

Patch

diff --git a/html/cgi-bin/dhcp.cgi b/html/cgi-bin/dhcp.cgi
index 125713285..2d162b204 100644
--- a/html/cgi-bin/dhcp.cgi
+++ b/html/cgi-bin/dhcp.cgi
@@ -113,6 +113,27 @@  foreach my $itf (@ITFs) {
 &General::readhash("${General::swroot}/time/settings", \%timesettings);
 &General::readhash("/srv/web/ipfire/html/themes/ipfire/include/colors.txt", \%color);
 
+###--- HTML HEAD ---###
+my $extraHead = <<END
+<style>
+	.row-color20 {
+		background-color: $color{'color20'};
+	}
+	.row-color22 {
+		background-color: $color{'color22'};
+	}
+	.row-colouryellow {
+		background-color: $Header::colouryellow;
+	}
+	.cell-orange {
+		background-color: orange;
+	}		
+</style>
+END
+;
+###--- END HTML HEAD ---###
+
+
 #Get GUI values
 &Header::getcgihash(\%dhcpsettings);
 
@@ -547,7 +568,8 @@  if ($dhcpsettings{'ACTION'} eq '' ) { # First launch from GUI
     $dhcpsettings{'ADVOPT_ENABLED'} = 'on';
     }
 
-&Header::openpage($Lang::tr{'dhcp configuration'}, 1, '');
+### START PAGE ###
+&Header::openpage($Lang::tr{'dhcp configuration'}, 1, $extraHead);
 &Header::openbigbox('100%', 'left', '', $errormessage);
 
 if ($errormessage) {
@@ -843,11 +865,11 @@  foreach my $line (@current1) {
     }
 
     if ($dhcpsettings{'KEY1'} eq $key) {
-	print "<tr bgcolor='${Header::colouryellow}'>";
+	print "<tr class='row-colouryellow'>";
     } elsif ($key % 2) {
-	print "<tr bgcolor='$color{'color22'}'>";
+	print "<tr class='row-color22'>";
     } else {
-	print "<tr bgcolor='$color{'color20'}'>";
+	print "<tr class='row-color20'>";
     }
 
     print <<END
@@ -1069,13 +1091,13 @@  foreach my $line (@current2) {
 
     if ($dhcpsettings{'KEY2'} eq $key) {
 	print "<tr>";
-	$col="bgcolor='${Header::colouryellow}'";
+	$col="class='row-colouryellow'";
     } elsif ($key % 2) {
 	print "<tr>";
-	$col="bgcolor='$color{'color20'}'";
+	$col="class='row-color20'";
     } else {
 	print "<tr>";
-	$col="bgcolor='$color{'color22'}'";
+	$col="class='row-color22'";
     }
     my $TAG0 = '';
     my $TAG1 = '';
@@ -1091,12 +1113,12 @@  foreach my $line (@current2) {
 	$TAG3 = '</b>';
     }
     if ($ipoutside{$temp[1]} > 0) {
-	$TAG4 = "bgcolor='orange'" if ($dhcpsettings{'KEY2'} ne $key);
+	$TAG4 = "class='cell-orange'" if ($dhcpsettings{'KEY2'} ne $key);
     }
 
     print <<END
 <td align='center' $col>$TAG2$temp[0]$TAG3</td>
-<td align='center' $col $TAG4>$TAG0$temp[1]$TAG1</td>
+<td align='center' $TAG4 $col>$TAG0$temp[1]$TAG1</td>
 <td align='center' $col>$temp[6]&nbsp;</td>
 <td align='center' $col>$temp[3]&nbsp;</td>
 <td align='center' $col>$temp[4]&nbsp;</td>
@@ -1153,8 +1175,8 @@  print <<END
 </tr>
 <tr>
 	<td>&nbsp;</td>
-	<td bgcolor='orange'>&nbsp;</td>
-	<td class='base'>$Lang::tr{'ip address outside subnets'}</td>
+	<td>&nbsp;</td>
+	<td class='base cell-orange'>$Lang::tr{'ip address outside subnets'}</td>
 	<td>&nbsp;</td>
 	<td>&nbsp;</td>
 	$dup