summaryrefslogtreecommitdiffstats
path: root/frontends/php/include/classes.inc.php
diff options
context:
space:
mode:
authorhugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2005-11-16 09:20:40 +0000
committerhugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2005-11-16 09:20:40 +0000
commit35cd234e4ecba035b49f32dac2e5b8e8d7880169 (patch)
tree6140193a5398d14139ed651d9e706d395c7f01d7 /frontends/php/include/classes.inc.php
parent12983180a530f0bdfbee1a67278e63c000386d7a (diff)
downloadzabbix-35cd234e4ecba035b49f32dac2e5b8e8d7880169.tar.gz
zabbix-35cd234e4ecba035b49f32dac2e5b8e8d7880169.tar.xz
zabbix-35cd234e4ecba035b49f32dac2e5b8e8d7880169.zip
- added column graphs.yaxisside (Alexei)
git-svn-id: svn://svn.zabbix.com/trunk@2322 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'frontends/php/include/classes.inc.php')
-rw-r--r--frontends/php/include/classes.inc.php137
1 files changed, 105 insertions, 32 deletions
diff --git a/frontends/php/include/classes.inc.php b/frontends/php/include/classes.inc.php
index 60b47c5e..5fa2ac9c 100644
--- a/frontends/php/include/classes.inc.php
+++ b/frontends/php/include/classes.inc.php
@@ -33,6 +33,8 @@
var $yaxistype;
var $yaxismin;
var $yaxismax;
+ var $yaxisleft;
+ var $yaxisright;
// items[num].data.min[max|avg]
var $items;
@@ -106,6 +108,8 @@
$this->border=1;
$this->num=0;
$this->yaxistype=GRAPH_YAXIS_TYPE_CALCULATED;
+ $this->yaxisright=0;
+ $this->yaxisleft=0;
$this->count=array();
$this->min=array();
@@ -136,6 +140,8 @@
$this->itemids[$this->items[$this->num]["itemid"]]=$this->num;
$this->items[$this->num]["color"]="Dark Green";
$this->items[$this->num]["drawtype"]=GRAPH_DRAW_TYPE_LINE;
+ $this->items[$this->num]["axisside"]=GRAPH_YAXIS_SIDE_RIGHT;
+ $this->yaxisright=1;
$this->num++;
}
@@ -149,6 +155,19 @@
$this->items[$this->itemids[$itemid]]["drawtype"]=$drawtype;
}
+ function setAxisSide($itemid,$axisside)
+ {
+ $this->items[$this->itemids[$itemid]]["axisside"]=$axisside;
+ if($axisside == GRAPH_YAXIS_SIDE_LEFT)
+ {
+ $this->yaxisleft=1;
+ }
+ else
+ {
+ $this->yaxisright=1;
+ }
+ }
+
function setPeriod($period)
{
$this->period=$period;
@@ -265,7 +284,6 @@
$str=$str.$this->period2str($this->period);
-
if($this->sizeX < 300)
{
$fontnum = 2;
@@ -394,8 +412,21 @@
}
}
-// Calculation of maximum Y
- function calculateMinY()
+// Calculation of maximum Y left axis side
+ function calculateMinYleft()
+ {
+ if($this->yaxistype==GRAPH_YAXIS_TYPE_FIXED)
+ {
+ return $this->yaxismin;
+ }
+ else
+ {
+ return 0;
+ }
+ }
+
+// Calculation of maximum Y right axis side
+ function calculateMinYright()
{
if($this->yaxistype==GRAPH_YAXIS_TYPE_FIXED)
{
@@ -407,8 +438,8 @@
}
}
-// Calculation of maximum Y
- function calculateMaxY()
+// Calculation of maximum Y right side
+ function calculateMaxYright()
{
if($this->yaxistype==GRAPH_YAXIS_TYPE_FIXED)
{
@@ -419,6 +450,7 @@
unset($maxY);
for($i=0;$i<$this->num;$i++)
{
+ if($this->items[$i]["axisside"] != GRAPH_YAXIS_SIDE_RIGHT) continue;
if(!isset($maxY)&&(isset($this->max[$i])))
{
if(count($this->max[$i])>0)
@@ -445,31 +477,51 @@
$mant=(floor($mant*1.1*10/6)+1)*6/10;
- /* if($mant<1.5)
- {
- $mant=1.5;
- }
- elseif($mant<2)
- {
- $mant=2;
- }
- elseif($mant<3)
- {
- $mant=3;
- }
- elseif($mant<5)
+ $maxY = $mant*pow(10,$exp);
+
+ return $maxY;
+ }
+ }
+
+// Calculation of maximum Y left side
+ function calculateMaxYleft()
+ {
+ if($this->yaxistype==GRAPH_YAXIS_TYPE_FIXED)
+ {
+ return $this->yaxismax;
+ }
+ else
+ {
+ unset($maxY);
+ for($i=0;$i<$this->num;$i++)
{
- $mant=5;
+ if($this->items[$i]["axisside"] != GRAPH_YAXIS_SIDE_LEFT) continue;
+ if(!isset($maxY)&&(isset($this->max[$i])))
+ {
+ if(count($this->max[$i])>0)
+ {
+ $maxY=max($this->max[$i]);
+ }
+ }
+ else
+ {
+ $maxY=@iif($maxY<max($this->max[$i]),max($this->max[$i]),$maxY);
+ }
}
- elseif($mant<8)
+
+ if(isset($maxY)&&($maxY>0))
{
- $mant=8;
+ $exp = floor(log10($maxY));
+ $mant = $maxY/pow(10,$exp);
}
else
{
- $mant=10;
+ $exp=0;
+ $mant=0;
}
- */
+
+ $mant=(floor($mant*1.1*10/6)+1)*6/10;
+
$maxY = $mant*pow(10,$exp);
return $maxY;
@@ -531,8 +583,8 @@
// $this->im = imagecreate($this->sizeX+$this->shiftX+61,$this->sizeY+2*$this->shiftY+40);
-// Header( "Content-type: text/html");
- Header( "Content-type: image/png");
+ Header( "Content-type: text/html");
+# Header( "Content-type: image/png");
Header( "Expires: Mon, 17 Aug 1998 12:51:50 GMT");
check_authorisation();
@@ -554,6 +606,7 @@
{
// $this->noDataFound();
}
+
$this->checkPermissions();
$this->selectData();
@@ -563,12 +616,25 @@
$maxX=900;
$minX=0;
- $minY=$this->calculateMinY();
- $maxY=$this->calculateMaxY();
+ $minYleft=$this->calculateMinYleft();
+ $minYright=$this->calculateMinYright();
+ $maxYleft=$this->calculateMaxYleft();
+ $maxYright=$this->calculateMaxYright();
// For each metric
for($item=0;$item<$this->num;$item++)
{
+ if($this->items[$item]["axisside"] == GRAPH_YAXIS_SIDE_RIGHT)
+ {
+ $minY=$minYright;
+ $maxY=$maxYright;
+ }
+ else
+ {
+ $minY=$minYleft;
+ $maxY=$maxYleft;
+ }
+
// For each X
for($i=0;$i<900;$i++)
{
@@ -609,11 +675,18 @@
}
}
}
-
- for($i=0;$i<=6;$i++)
- {
- ImageString($this->im, 1, $this->sizeX+5+$this->shiftX, $this->sizeY-$this->sizeY*$i/6-4+$this->shiftY, convert_units($this->sizeY*$i/6*($maxY-$minY)/$this->sizeY+$minY,$this->items[0]["units"]) , $this->colors["Dark Red No Alpha"]);
- }
+
+ if($this->yaxisright == 1)
+ for($i=0;$i<=6;$i++)
+ {
+ ImageString($this->im, 1, $this->sizeX+5+$this->shiftX, $this->sizeY-$this->sizeY*$i/6-4+$this->shiftY, convert_units($this->sizeY*$i/6*($maxYright-$minYright)/$this->sizeY+$minYright,$this->items[0]["units"]) , $this->colors["Dark Red No Alpha"]);
+ }
+
+ if($this->yaxisleft == 1)
+ for($i=0;$i<=6;$i++)
+ {
+ ImageString($this->im, 1, 5, $this->sizeY-$this->sizeY*$i/6-4+$this->shiftY, convert_units($this->sizeY*$i/6*($maxYleft-$minYleft)/$this->sizeY+$minYleft,$this->items[0]["units"]) , $this->colors["Dark Red No Alpha"]);
+ }
$this->drawLogo();