chart employee growth
chart employee growth


Former-commit-id: acae8c2c66e158f5126706b9308a5a8282cb4d3c

<?php <?php
   
include_once("../include/common.inc.php"); include_once("../include/common.inc.php");
   
  $format = "csv";
  //$format = "json";
  if (isset($_REQUEST['format'])) $format = $_REQUEST['format'];
   
setlocale(LC_CTYPE, 'C'); setlocale(LC_CTYPE, 'C');
  if ($format == "csv") {
$headers = Array("name"); $headers = Array("name");
  } else {
  $headers = Array();
  }
   
$db = $server->get_db('disclosr-agencies'); $db = $server->get_db('disclosr-agencies');
try { try {
$rows = $db->get_view("app", "all", null, true)->rows; $rows = $db->get_view("app", "all", null, true)->rows;
   
$dataValues = Array(); $dataValues = Array();
foreach ($rows as $row) { foreach ($rows as $row) {
if (isset($row->value->statistics->employees)) { if (isset($row->value->statistics->employees)) {
   
$headers = array_unique(array_merge($headers, array_keys(object_to_array($row->value->statistics->employees)))); $headers = array_unique(array_merge($headers, array_keys(object_to_array($row->value->statistics->employees))));
} }
} }
} catch (SetteeRestClientException $e) { } catch (SetteeRestClientException $e) {
setteErrorHandler($e); setteErrorHandler($e);
} }
   
$fp = fopen('php://output', 'w'); $fp = fopen('php://output', 'w');
if ($fp && $db) { if ($fp && $db) {
header('Content-Type: text/csv; charset=utf-8'); if ($format == "csv") {
header('Content-Disposition: attachment; filename="export.employeestats.' . date("c") . '.csv"'); header('Content-Type: text/csv; charset=utf-8');
  header('Content-Disposition: attachment; filename="export.employeestats.' . date("c") . '.csv"');
  }
header('Pragma: no-cache'); header('Pragma: no-cache');
header('Expires: 0'); header('Expires: 0');
fputcsv($fp, $headers); if ($format == "csv") {
  fputcsv($fp, $headers);
  } else if ($format == "json") {
  echo '{
  "labels" : ["' . implode('","', $headers) . '"],'.PHP_EOL;
  }
try { try {
$agencies = $db->get_view("app", "all", null, true)->rows; $agencies = $db->get_view("app", "all", null, true)->rows;
//print_r($agencies); //print_r($agencies);
  $first = true;
  if ($format == "json") {
  echo '"data" : ['.PHP_EOL;
   
  }
foreach ($agencies as $agency) { foreach ($agencies as $agency) {
   
if (isset($agency->value->statistics->employees)) { if (isset($agency->value->statistics->employees)) {
$row = Array(); $row = Array();
$agencyEmployeesArray = object_to_array($agency->value->statistics->employees); $agencyEmployeesArray = object_to_array($agency->value->statistics->employees);
foreach ($headers as $fieldName) { foreach ($headers as $i => $fieldName) {
if ($fieldName == "name") { if (isset($agencyEmployeesArray[$fieldName])) {
$row[] = $agency->value->name; $row[] = '['.$i.','.$agencyEmployeesArray[$fieldName]["value"].']';
} else if (isset($agencyEmployeesArray[$fieldName])) {  
$row[] = $agencyEmployeesArray[$fieldName]["value"];  
} else { } else {
$row[] = 0; $row[] = '['.$i.',0]';
} }
} }
  if ($format == "csv") {
fputcsv($fp, array_values($row)); fputcsv($fp, array_values($row));
  } else if ($format == "json") {
  if (!$first) echo ",";
  echo '{"data" : [' . implode(",", array_values($row)) . '], "label": "'.$agency->value->name.'", "lines" : { "show" : true }, "points" : { "show" : true }}'.PHP_EOL;
  $first = false;
  }
} }
  }
  if ($format == "json") {
  echo ']
  }'.PHP_EOL;
   
} }
} catch (SetteeRestClientException $e) { } catch (SetteeRestClientException $e) {
setteErrorHandler($e); setteErrorHandler($e);
} }
   
die; die;
} }
?> ?>
   
file:a/charts.php -> file:b/charts.php
<?php <?php
include_once('include/common.inc.php'); include_once('include/common.inc.php');
include_header(); include_header();
$db = $server->get_db('disclosr-agencies'); $db = $server->get_db('disclosr-agencies');
?> ?>
<div class="foundation-header"> <div class="foundation-header">
<h1><a href="about.php">Charts</a></h1> <h1><a href="about.php">Charts</a></h1>
<h4 class="subheader">Lorem ipsum.</h4> <h4 class="subheader">Lorem ipsum.</h4>
</div> </div>
<div id="placeholder" style="width:900px;height:500px;"></div> <div id="scores" style="width:900px;height:500px;"></div>
  <div id="employees" style="width:1000px;height:900px;"></div>
<script id="source"> <script id="source">
window.onload = function() { window.onload = function() {
$(document).ready(function() { $(document).ready(function() {
var d1 = []; var d1 = [];
var labels = []; var scorelabels = [];
<?php <?php
try { try {
$rows = $db->get_view("app", "scoreHas?group=true", null, true)->rows; $rows = $db->get_view("app", "scoreHas?group=true", null, true)->rows;
   
   
$dataValues = Array(); $dataValues = Array();
foreach ($rows as $row) { foreach ($rows as $row) {
$dataValues[$row->value] = $row->key; $dataValues[$row->value] = $row->key;
} }
$i = 0; $i = 0;
ksort($dataValues); ksort($dataValues);
foreach ($dataValues as $value => $key) { foreach ($dataValues as $value => $key) {
   
echo " d1.push([$i, $value]);" . PHP_EOL; echo " d1.push([$i, $value]);" . PHP_EOL;
echo " labels.push('$key');" . PHP_EOL; echo " scorelabels.push('$key');" . PHP_EOL;
$i++; $i++;
} }
} catch (SetteeRestClientException $e) { } catch (SetteeRestClientException $e) {
setteErrorHandler($e); setteErrorHandler($e);
} }
?> ?>
function trackformatter(obj) { function scoretrackformatter(obj) {
if (labels[Math.floor(obj.x)]) { if (scorelabels[Math.floor(obj.x)]) {
return (labels[Math.floor(obj.x)])+"="+obj.y; return (scorelabels[Math.floor(obj.x)])+"="+obj.y;
} else { } else {
return ""; return "";
  }
} }
} function scoretickformatter(val, axis) {
function tickformatter(val, axis) { if (scorelabels[Math.floor(val)]) {
if (labels[Math.floor(val)]) { return '<p style="margin-top:8em;-webkit-transform:rotate(-90deg);">'+(scorelabels[Math.floor(val)])+"</b>";
return '<p style="margin-top:8em;-webkit-transform:rotate(-90deg);">'+(labels[Math.floor(val)])+"</b>";  
} else { } else {
return ""; return "";
  }
} }
} Flotr.draw(document.getElementById("scores"), [ {data: d1}], {
Flotr.draw(document.getElementById("placeholder"), [ {data: d1}], { HtmlText: true,
HtmlText: true, bars : {
bars : { show : true
show : true },
}, mouse : {
mouse : { track : true,
track : true, relative : true,
relative : true, trackFormatter: scoretrackformatter
trackFormatter: trackformatter },yaxis: {
},yaxis: { autoscaling: true
min:0 },
}, xaxis: {
xaxis: { autoscaling: true,
  minorTickFreq: 0.6,
minorTickFreq: 0.6, noTicks : scorelabels.length,
noTicks : 19, tickFormatter: scoretickformatter
tickFormatter: tickformatter }
  });
   
   
   
   
   
   
   
   
  var emplabels = [];
  function emptrackformatter(obj) {
   
  return (obj.series.label)+" = "+obj.y+" in "+emplabels[Math.floor(obj.x)];
   
} }
}); function emptickformatter(val, axis) {
  if (emplabels[Math.floor(val)]) {
  return '<p style="margin-top:8em;-webkit-transform:rotate(-90deg);">'+(emplabels[Math.floor(val)])+"</b>";
   
  } else {
  return "";
  }
  }
  function onDataReceived(series) {
  emplabels = series.labels;
  Flotr.draw(document.getElementById("employees"), series.data, {
  mouse : {
  track : true,
  relative : true,
  trackFormatter: emptrackformatter
  },yaxis: {
  max: 10000,
  scaling: 'logarithmic'
  },
  xaxis: {
  minorTickFreq: 1,
  noTicks: emplabels.length,
  showMinorLabels: true,
  tickFormatter: emptickformatter
  },
  legend: {
  show: false
  }
  });
  }
   
  $.ajax({
  url: "admin/exportEmployees.csv.php?format=json",
  method: 'GET',
  dataType: 'json',
  success: onDataReceived
  });
   
  });
}); };
};  
</script> </script>
   
<?php <?php
include_footer(); include_footer();
?> ?>