1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 | <!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->employees)) { $employees = $row->value->employees; } if (isset($row->value->statistics->employees)) { $agencyEmployeesArray = object_to_array($row->value->statistics->employees); if (isset($agencyEmployeesArray["2010-2011"]["value"])) { $employees = $agencyEmployeesArray["2010-2011"]["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> |