chart employee growth
chart employee growth


Former-commit-id: acae8c2c66e158f5126706b9308a5a8282cb4d3c

--- a/admin/exportEmployees.csv.php
+++ b/admin/exportEmployees.csv.php
@@ -2,10 +2,16 @@
 
 include_once("../include/common.inc.php");
 
+$format = "csv";
+//$format = "json";
+if (isset($_REQUEST['format']))  $format = $_REQUEST['format'];
 
 setlocale(LC_CTYPE, 'C');
-
-$headers = Array("name");
+if ($format == "csv") {
+    $headers = Array("name");
+} else {
+    $headers = Array();
+}
 
 $db = $server->get_db('disclosr-agencies');
 try {
@@ -24,31 +30,51 @@
 
 $fp = fopen('php://output', 'w');
 if ($fp && $db) {
-    header('Content-Type: text/csv; charset=utf-8');
-    header('Content-Disposition: attachment; filename="export.employeestats.' . date("c") . '.csv"');
+    if ($format == "csv") {
+        header('Content-Type: text/csv; charset=utf-8');
+        header('Content-Disposition: attachment; filename="export.employeestats.' . date("c") . '.csv"');
+    }
     header('Pragma: no-cache');
     header('Expires: 0');
-    fputcsv($fp, $headers);
+    if ($format == "csv") {
+        fputcsv($fp, $headers);
+    } else if ($format == "json") {
+        echo '{
+            "labels" : ["' . implode('","', $headers) . '"],'.PHP_EOL;
+    }
     try {
         $agencies = $db->get_view("app", "all", null, true)->rows;
         //print_r($agencies);
+        $first = true;
+        if ($format == "json") {
+        echo '"data" : ['.PHP_EOL;
+        
+        }
         foreach ($agencies as $agency) {
 
             if (isset($agency->value->statistics->employees)) {
                 $row = Array();
                 $agencyEmployeesArray = object_to_array($agency->value->statistics->employees);
-                foreach ($headers as $fieldName) {
-                    if ($fieldName == "name") {
-                        $row[] = $agency->value->name;
-                    } else if (isset($agencyEmployeesArray[$fieldName])) {
-                        $row[] = $agencyEmployeesArray[$fieldName]["value"];
+                foreach ($headers as $i => $fieldName) {
+                    if (isset($agencyEmployeesArray[$fieldName])) {
+                        $row[] = '['.$i.','.$agencyEmployeesArray[$fieldName]["value"].']';
                     } else {
-                        $row[] = 0;
+                        $row[] = '['.$i.',0]';
                     }
                 }
-
-                fputcsv($fp, array_values($row));
+                if ($format == "csv") {
+                    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) {
         setteErrorHandler($e);

file:a/charts.php -> file:b/charts.php
--- a/charts.php
+++ b/charts.php
@@ -7,12 +7,13 @@
     <h1><a href="about.php">Charts</a></h1>
     <h4 class="subheader">Lorem ipsum.</h4>
 </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">
     window.onload = function() {
         $(document).ready(function() {
             var d1 = [];
-            var labels = [];
+            var scorelabels = [];
     <?php
     try {
         $rows = $db->get_view("app", "scoreHas?group=true", null, true)->rows;
@@ -27,53 +28,103 @@
         foreach ($dataValues as $value => $key) {
 
             echo "       d1.push([$i, $value]);" . PHP_EOL;
-            echo "        labels.push('$key');" . PHP_EOL;
+            echo "        scorelabels.push('$key');" . PHP_EOL;
             $i++;
         }
     } catch (SetteeRestClientException $e) {
         setteErrorHandler($e);
     }
     ?>
-               function trackformatter(obj) {
-                if (labels[Math.floor(obj.x)]) {
-              return (labels[Math.floor(obj.x)])+"="+obj.y;
+                function scoretrackformatter(obj) {
+                    if (scorelabels[Math.floor(obj.x)]) {
+                        return (scorelabels[Math.floor(obj.x)])+"="+obj.y;
                      
-                } else {
-                    return "";
+                    } else {
+                        return "";
+                    }
                 }
-            }
-            function tickformatter(val, axis) {
-                if (labels[Math.floor(val)]) {
-              return '<p style="margin-top:8em;-webkit-transform:rotate(-90deg);">'+(labels[Math.floor(val)])+"</b>";
+                function scoretickformatter(val, axis) {
+                    if (scorelabels[Math.floor(val)]) {
+                        return '<p style="margin-top:8em;-webkit-transform:rotate(-90deg);">'+(scorelabels[Math.floor(val)])+"</b>";
                      
-                } else {
-                    return "";
+                    } else {
+                        return "";
+                    }
                 }
-            }
-            Flotr.draw(document.getElementById("placeholder"), [ {data: d1}], {
-                HtmlText: true,
-                bars : {
-        show : true
-                },
-                mouse : {
-        track : true,
-        relative : true,
-        trackFormatter: trackformatter
-      },yaxis: {
-          min:0
-      },
-                xaxis: {
-                    
-                    minorTickFreq: 0.6,
-                    noTicks : 19,
-                    tickFormatter: tickformatter
+                Flotr.draw(document.getElementById("scores"), [ {data: d1}], {
+                    HtmlText: true,
+                    bars : {
+                        show : true
+                    },
+                    mouse : {
+                        track : true,
+                        relative : true,
+                        trackFormatter: scoretrackformatter
+                    },yaxis: {
+                        autoscaling: true
+                    },
+                    xaxis: {
+                    autoscaling: true,
+                        minorTickFreq: 0.6,
+                        noTicks : scorelabels.length,
+                        tickFormatter: scoretickformatter
+                    }
+                });
+                
+                
+                
+                
+                
+                
+                
+                
+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>