浏览代码

Prototype of HeatMap dashlet

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@2078 a333f486-631f-4898-b8df-5754b55c2be0
dflaven 13 年之前
父节点
当前提交
43ebc6297e
共有 1 个文件被更改,包括 46 次插入3 次删除
  1. 46 3
      application/dashlet.class.inc.php

+ 46 - 3
application/dashlet.class.inc.php

@@ -1170,7 +1170,7 @@ class DashletProto extends Dashlet
 				@$aResData = $this->aStats[$sValue1][$sValue2];
 				@$aResData = $this->aStats[$sValue1][$sValue2];
 				if (is_array($aResData))
 				if (is_array($aResData))
 				{
 				{
-					$sRes = $aResData['digurl'];
+					$sRes = '<a href="'.$aResData['href'].'">'.$aResData['count'].'</a>';
 				}
 				}
 				else
 				else
 				{
 				{
@@ -1183,6 +1183,39 @@ class DashletProto extends Dashlet
 		}
 		}
 		$oPage->add('</table>');
 		$oPage->add('</table>');
 		$oPage->add('</div>');
 		$oPage->add('</div>');
+		
+		$sId = 'chart_'.($bEditMode? 'edit_' : '').$this->sId;
+		$oPage->add('<div id="chart_'.$sId.'" class="dashlet-content"></div>');
+		$aAxisX = $this->aValues1;
+		$aAxisY = $this->aValues2;
+		$aData = array();
+		$aHref = array();
+		foreach ($this->aValues1 as $sValue1 => $sDisplayValue1)
+		{
+			foreach ($this->aValues2 as $sValue2 => $sDisplayValue2)
+			{
+				@$aResData = $this->aStats[$sValue1][$sValue2];
+				if (is_array($aResData))
+				{
+					$aData[$sValue1][$sValue2] = $aResData['count'];
+					$aHref[$sValue1][$sValue2] = $aResData['href'];
+				}
+				else
+				{
+					// Missing result => 0
+					$aData[$sValue1][$sValue2] = 0;
+					$aHref[$sValue1][$sValue2] = '';
+				}
+			}
+		}
+		
+		$sJSAxisX = json_encode($aAxisX);
+		$sJSAxisY = json_encode($aAxisY);
+		$sJSData = json_encode($aData);
+		$sJSHref = json_encode($aHref);
+		$sTitle = addslashes($sHtmlTitle);
+		$oPage->add_ready_script("$('#chart_{$sId}').heatmap_chart({chart_label: '$sTitle', values: $sJSData, hrefs: $sJSHref, axis_x: $sJSAxisX, axis_y: $sJSAxisY});");
+		
 	}
 	}
 
 
 	protected function Compute()
 	protected function Compute()
@@ -1293,7 +1326,8 @@ class DashletProto extends Dashlet
 				$sFilter = urlencode($oSubsetSearch->serialize());
 				$sFilter = urlencode($oSubsetSearch->serialize());
 
 
 				$this->aStats[$sValue1][$sValue2] = array (
 				$this->aStats[$sValue1][$sValue2] = array (
-					'digurl' => "<a href=\"".utils::GetAbsoluteUrlAppRoot()."pages/UI.php?operation=search&dosearch=1&$sParams&filter=$sFilter\">$iCount</a>"
+					'href' => utils::GetAbsoluteUrlAppRoot()."pages/UI.php?operation=search&dosearch=1&$sParams&filter=$sFilter\">",
+					'count' => $iCount,
 				);
 				);
 				if (!array_key_exists($sValue1, $this->aValues1))
 				if (!array_key_exists($sValue1, $this->aValues1))
 				{
 				{
@@ -1340,7 +1374,16 @@ class DashletHeatMap extends Dashlet
 	
 	
 		$sId = 'chart_'.($bEditMode? 'edit_' : '').$this->sId;
 		$sId = 'chart_'.($bEditMode? 'edit_' : '').$this->sId;
 		$oPage->add('<div id="chart_'.$sId.'" class="dashlet-content"></div>');
 		$oPage->add('<div id="chart_'.$sId.'" class="dashlet-content"></div>');
-		$oPage->add_ready_script("$('#chart_{$sId}').heatmap_chart({chart_label: '$sTitle'});");
+		$aAxisX = array(0 => 'Lun', 1 => 'Ma');
+		$aAxisY = array(0 => '12h', 1 => '13h');
+		$aData = array(
+			0 => array(1, 2),
+			1 => array(3, 4),
+		);
+		$sJSAxisX = json_encode($aAxisX);
+		$sJSAxisY = json_encode($aAxisY);
+		$sJSData = json_encode($aData);
+		$oPage->add_ready_script("$('#chart_{$sId}').heatmap_chart({chart_label: '$sTitle', values: $sJSData, axis_x: $sJSAxisX, axis_y: $sJSAxisY});");
 	}
 	}
 	
 	
 	public function GetPropertiesFields(DesignerForm $oForm)
 	public function GetPropertiesFields(DesignerForm $oForm)