|
|
|
<!DOCTYPE html> |
|
<html xmlns="http://www.w3.org/1999/xhtml"> |
|
<head> |
|
<meta charset="UTF-8"/> |
|
<title>Minimal BubbleTree Demo</title> |
|
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.js"></script> |
|
<script type="text/javascript" src="js/bubbletree/lib/jquery.history.js"></script> |
|
<script type="text/javascript" src="js/bubbletree/lib/raphael.js"></script> |
|
<script type="text/javascript" src="js/bubbletree/lib/vis4.js"></script> |
|
<script type="text/javascript" src="js/bubbletree/lib/Tween.js"></script> |
|
<script type="text/javascript" src="js/bubbletree/build/bubbletree.js"></script> |
|
<link rel="stylesheet" type="text/css" href="js/bubbletree/build/bubbletree.css" /> |
|
<script type="text/javascript" src="js/bubbletree/styles/cofog.js"></script> |
|
|
|
|
|
<script type="text/javascript"> |
|
|
|
$(function() { |
|
<?php |
|
include_once('include/common.inc.php'); |
|
|
|
include("lib/Color.php"); |
|
$color = new Lux_Color(); |
|
|
|
$portfolios = Array(); |
|
$total = 0; |
|
$db = $server->get_db('disclosr-agencies'); |
|
try { |
|
$rows = $db->get_view("app", "byDeptStateName", null, true)->rows; |
|
foreach ($rows as $row) { |
|
$portfolios[trim(str_replace(Array("Department of", "Department", "the", "'", "`"), "", $row->key))] = $row->value; |
|
} |
|
} catch (SetteeRestClientException $e) { |
|
setteErrorHandler($e); |
|
} |
|
|
|
$agencies = Array(); |
|
try { |
|
$rows = $db->get_view("app", "byCanonicalName", null, true)->rows; |
|
//print_r($rows); |
|
foreach ($rows as $row) { |
|
$employees = 0; |
|
$portfolioid = 0; |
|
if (isset($row->value->statistics->budget)) { |
|
$agencyEmployeesArray = object_to_array($row->value->statistics->budget); |
|
//print_r($agencyEmployeesArray); |
|
if (isset($agencyEmployeesArray["2011-2012"]["value"])) { |
|
$employees = $agencyEmployeesArray["2011-2012"]["value"]; |
|
} else { |
|
// bailout for agencies that are closed for business |
|
continue; |
|
} |
|
} |
|
if (!($employees > 0)) { |
|
$employees = 0; |
|
} |
|
if (isset($row->value->parentOrg)) { |
|
$portfolioid = $row->value->parentOrg; |
|
} |
|
if (isset($row->value->orgType) && $row->value->orgType == "FMA-DepartmentOfState") { |
|
$portfolioid = $row->id; |
|
} |
|
$agencies[$portfolioid][$row->value->name] = $employees; |
|
} |
|
} catch (SetteeRestClientException $e) { |
|
setteErrorHandler($e); |
|
} |
|
//print_r($portfolios); |
|
//print_r($agencies); |
|
|
|
// http://martin.ankerl.com/2009/12/09/how-to-create-random-colors-programmatically/ |
|
$golden_ratio_conjugate = 0.618033988749895; |
|
$h = 0.00+rand(0,10)/10; # use random start value |
|
foreach ($portfolios as $portfolioName => $portfolioID) { |
|
$h += $golden_ratio_conjugate; |
|
|
|
$h = fmod($h,1); |
|
$portfolioColor = $color->hsv2hex(Array($h, .3, .99)); |
|
$subnodes = Array(); |
|
$portfolioEmployees = 0; |
|
foreach ($agencies[$portfolioID] as $agencyName => $agencyEmployees) { |
|
$agencyColor = $color->hsv2hex(Array($h / 10, rand(1, 10) / 10, abs(($h * (1 / 10)) - .5) + .5)); |
|
$subnodes[] = Array( |
|
"label" => str_replace(Array("'", "`"), "", $agencyName), |
|
"amount" => $agencyEmployees, |
|
//"color" => "#" . $agencyColor |
|
); |
|
$portfolioEmployees += $agencyEmployees; |
|
} |
|
$nodes[] = Array( |
|
"label" => $portfolioName, |
|
"amount" => $portfolioEmployees, |
|
//"color" => "#" . $portfolioColor, |
|
"children" => $subnodes |
|
); |
|
$total += $portfolioEmployees; |
|
} |
|
$data = Array( |
|
"label" => "Australian Federal Government", |
|
"amount" => $total, |
|
//"color" => "#000000", |
|
"children" => $nodes |
|
); |
|
echo "var data =eval('('+'" . json_encode($data) . "'+')');"; |
|
?> |
|
|
|
new BubbleTree({ |
|
data: data, |
|
container: '.bubbletree' |
|
}); |
|
|
|
|
|
}); |
|
|
|
</script> |
|
</head> |
|
<body> |
|
<div class="bubbletree-wrapper"> |
|
<div class="bubbletree"></div> |
|
</div> |
|
</body> |
|
</html> |
|
|