Barre des quotas toute neuve, merci Manu !

This commit is contained in:
Alan Garcia 2013-04-29 15:58:09 +00:00
parent 50c8877498
commit 48f77aeed6
6 changed files with 130 additions and 17 deletions

View File

@ -77,11 +77,10 @@ foreach ($obj_menu as $k => $m ) {
foreach( $m['links'] as $l ) {
if ( $l['txt'] == 'progressbar' ) {
$usage_percent = (int) ($l['used'] / $l['total'] * 100);
$usage_color = ( $l['used'] > $l['total'] ? '#800' : '#080');
$usage_color = ((85 < $usage_percent && $usage_percent <= 100) ? '#ff8800' : $usage_color); // yellow
echo "<li>";
echo '<div class="progress-bar">';
echo '<div style="width: ' . ($usage_percent > 100 ? 100 : $usage_percent) . '%; background: ' . $usage_color . ';">&nbsp;</div>';
echo '<div class="barre" style="width:'.$usage_percent.'%; background-color:'.PercentToColor($usage_percent).'" ></div>';
//echo '<div class="txt">'.$usage.' %</div>';
echo '</div>';
echo "</li>";
continue;

View File

@ -7,12 +7,13 @@ if (!defined("QUOTASONE")) return;
if (!isset($mode)) { # when included from adm_login, mode is not set
$mode = 0;
}
// $mode = 4; // Pour Debuguer le mode "graphique" des quotas
?>
<center>
<h3 style="text-align:center;"><?php printf(_("<b>%s</b> account"),$mem->user["login"]); ?></h3>
<div style="width: 550px">
<div style="width: 600px">
<!-- Webspaces -->
@ -29,7 +30,7 @@ if (!isset($mode)) { # when included from adm_login, mode is not set
<!-- Mails -->
<table class="tedit" width="90%">
<table class="tedit" width="100%">
<thead>
<tr>
<th><?php __("Domains"); ?></th>
@ -101,6 +102,7 @@ if (!isset($mode)) { # when included from adm_login, mode is not set
</tbody>
</table>
<p>&nbsp;</p>
<!-- Databases -->
<?php
@ -112,7 +114,7 @@ if (!isset($mode)) { # when included from adm_login, mode is not set
echo "</p>";
?>
<table class="tedit" width="50%">
<table class="tedit" width="100%">
<thead>
<tr>
<th width='50%'><?php __("DB"); ?></th>
@ -138,7 +140,7 @@ if (!isset($mode)) { # when included from adm_login, mode is not set
} elseif (isset($mode) &&$mode==1) {
echo sprintf("%.1f", $pc)."&nbsp;%";
} else {
$quota->quota_displaybar(2*$pc);
$quota->quota_displaybar(2*$pc, 0);
}
echo "</td></tr>";
}

View File

@ -122,8 +122,8 @@ echo "<br /><br />"; printf(_("If you want to manage them, go to")."&nbsp;<a hre
?>
<center>
<div style="width: 650px">
<table class="tedit">
<div>
<table class="tedit" width="100%">
<thead>
<tr><th>&nbsp;</th><th><?php __("Count"); ?></th><th><?php __("Space"); ?></th></tr>
</thead>
@ -163,8 +163,8 @@ echo "<br /><br />"; printf(_("If you want to manage them, go to")."&nbsp;<a hre
?>
<center>
<div style="width: 650px">
<table class="tedit">
<div>
<table class="tedit" width="100%">
<thead>
<tr><th rowspan="2"><?php __("Account"); ?></th><th colspan="3"><?php __("Count"); ?></th><th colspan="5"><?php __("Space"); ?></th></tr>
<tr>

View File

@ -609,6 +609,35 @@ input#dir, input#sub_local {
margin-left: 10px;
}
div.progress-bar {
position: relative;
width: 100%;
height: 20px;
background-color: #fff;
border: solid 1px #aaa;
overflow: hidden;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
}
div.progress-bar div.barre {
position: absolute;
top: 0;
left: 0;
height: 20px;
background-color: #CCC;
border: none;
}
div.progress-bar div.txt {
position: absolute;
top: 3px;
left: 0;
width: 100%;
text-align:center;
}
.ombrage {
border: 1px solid #888;
box-shadow: 1px 1px 15px #555;

View File

@ -678,4 +678,76 @@ function auto_wrap($message="",$max=10,$wrap_string="<wbr/>") {
return $message;
}
/*
** Converts HSV to RGB values
** -----------------------------------------------------
** Reference: http://en.wikipedia.org/wiki/HSL_and_HSV
** Purpose: Useful for generating colours with
** same hue-value for web designs.
** Input: Hue (H) Integer 0-360
** Saturation (S) Integer 0-100
** Lightness (V) Integer 0-100
** Output: String "R,G,B"
** Suitable for CSS function RGB().
*/
function fHSVtoRGB($iH, $iS, $iV) {
if($iH < 0) $iH = 0; // Hue:
if($iH > 360) $iH = 360; // 0-360
if($iS < 0) $iS = 0; // Saturation:
if($iS > 100) $iS = 100; // 0-100
if($iV < 0) $iV = 0; // Lightness:
if($iV > 100) $iV = 100; // 0-100
$dS = $iS/100.0; // Saturation: 0.0-1.0
$dV = $iV/100.0; // Lightness: 0.0-1.0
$dC = $dV*$dS; // Chroma: 0.0-1.0
$dH = $iH/60.0; // H-Prime: 0.0-6.0
$dT = $dH; // Temp variable
while($dT >= 2.0) $dT -= 2.0; // php modulus does not work with float
$dX = $dC*(1-abs($dT-1)); // as used in the Wikipedia link
switch($dH) {
case($dH >= 0.0 && $dH < 1.0):
$dR = $dC; $dG = $dX; $dB = 0.0; break;
case($dH >= 1.0 && $dH < 2.0):
$dR = $dX; $dG = $dC; $dB = 0.0; break;
case($dH >= 2.0 && $dH < 3.0):
$dR = 0.0; $dG = $dC; $dB = $dX; break;
case($dH >= 3.0 && $dH < 4.0):
$dR = 0.0; $dG = $dX; $dB = $dC; break;
case($dH >= 4.0 && $dH < 5.0):
$dR = $dX; $dG = 0.0; $dB = $dC; break;
case($dH >= 5.0 && $dH < 6.0):
$dR = $dC; $dG = 0.0; $dB = $dX; break;
default:
$dR = 0.0; $dG = 0.0; $dB = 0.0; break;
}
$dM = $dV - $dC;
$dR += $dM; $dG += $dM; $dB += $dM;
$dR *= 255; $dG *= 255; $dB *= 255;
return array('r'=>round($dR), 'g'=>round($dG), 'b'=>round($dB) );
}
function hexa($hex)
{
$num = dechex($hex);
return (strlen("$num") >= 2) ? "$num" : "0$num";
}
function PercentToColor($p=0) {
if ($p>100) $p=100;
if ($p<0) $p=0;
// Pour aller de vert a rouge en passant par jaune et orange
$h = 1+((100-$p)*130/100);
$rvb = fHSVtoRGB( (int)$h, 96, 93);
$color = "#".hexa($rvb['r']).hexa($rvb['g']).hexa($rvb['b']);
return $color;
}
?>

View File

@ -520,13 +520,24 @@ class m_quota {
}
}
// Cette fonction doit disparaitre quand on refera les pages d'affichage du quota
// trop sale
function quota_displaybar($usage) {
$usage_color = '#A0CFEC';
$usage_color = ((85 < $usage && $usage <= 100) ? '#82CAFF' : $usage_color); // yellow
// Affiche des barres de progression
// color_type :
// 0 = Pas de changement de couleur
// 1 = Progression du vert vers le rouge en fonction du porcentage
// 2 = Progression du rouge vers le vert en fonction du porcentage
function quota_displaybar($usage, $color_type=1) {
if ($color_type == 1) {
$csscolor = " background-color:".PercentToColor($usage);
} elseif ($color_type == 2) {
$csscolor = " background-color:".PercentToColor(100-$usage);
} else {
$csscolor = "";
}
echo '<div class="progress-bar">';
echo '<div style="width:'.$usage.'%; background: ' . $usage_color . '; text-align:center; font-weight: bold;" >'.$usage.'%</div>';
echo '<div class="barre" style="width:'.$usage.'%;'.$csscolor.'" ></div>';
echo '<div class="txt">'.$usage.'%</div>';
echo '</div>';
}