Add hierarchical graph
Add hierarchical graph


Former-commit-id: 5b4c5d76fd89c7a77236ac131f75184be44723c9

--- a/.gitmodules
+++ b/.gitmodules
@@ -4,4 +4,7 @@
 [submodule "couchdb/settee"]
 	path = couchdb/settee
 	url = https://github.com/inadarei/settee.git
+[submodule "lib/springy"]
+	path = lib/springy
+	url = https://github.com/dhotson/springy.git
 

file:b/graph.php (new)
--- /dev/null
+++ b/graph.php
@@ -1,1 +1,47 @@
+<?php
+include_once('include/common.inc.php');
+//include_header();
+?>
+<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
+<script src="lib/springy/springy.js"></script>
+<script src="lib/springy/springyui.js"></script>
+<script>
+    var graph = new Graph();
+    var nodes = [];
+<?php
+$db = $server->get_db('disclosr-agencies');
 
+try {
+    $rows = $db->get_view("app", "byCanonicalName", null, true)->rows;
+    //print_r($rows);
+    foreach ($rows as $row) {
+        echo "nodes[\"{$row->value}\"] = graph.newNode({label: \"{$row->key}\"});".PHP_EOL;
+    }
+} catch (SetteeRestClientException $e) {
+    setteErrorHandler($e);
+}
+try {
+    $rows = $db->get_view("app", "parentOrgs", null, true)->rows;
+ //   print_r($rows);
+    foreach ($rows as $row) {
+        echo "graph.newEdge(nodes[\"{$row->key}\"], nodes['{$row->value}'], {color: '#00A0B0'});".PHP_EOL;
+    }
+} catch (SetteeRestClientException $e) {
+    setteErrorHandler($e);
+}
+?>
+     window.onload = function() {
+                $(document).ready(function() {
+        var springy = $('#springydemo').springy({
+            graph: graph
+        });
+                });
+     };
+</script>
+
+<canvas id="springydemo" width="960" height="480" />
+<?php
+//include_footer();
+?>
+
+

--- a/include/couchdb.inc.php
+++ b/include/couchdb.inc.php
@@ -9,6 +9,16 @@
     $obj->language = "javascript";
     $obj->views->all->map = "function(doc) {   emit(doc._id, doc); };";
     $obj->views->byABN->map = "function(doc) {   emit(doc.abn, doc); };";
+        $obj->views->byCanonicalName->map = "function(doc) {  
+            if (doc.parentOrg || doc.orgType == 'FMA-DepartmentOfState') {
+        emit(doc.name, doc._id); 
+        }
+};";
+        $obj->views->parentOrgs->map = "function(doc) {
+            if (doc.parentOrg) {
+        emit(doc._id, doc.parentOrg);
+        }
+};";
     $obj->views->byName->map = "function(doc) {  
         emit(doc.name, doc._id); 
  for (name in doc.otherNames) {
@@ -52,8 +62,16 @@
 
 require ('couchdb/settee/src/settee.php');
 
+if( php_uname('n') == "vanille") {
+
+$server = new SetteeServer('http://192.168.178.21:5984');
+} else 
+    if( php_uname('n') == "kyuubey") {
+
 $server = new SetteeServer('http://192.168.1.8:5984');
-
+} else {
+    $server = new SetteeServer('http://127.0.0.1:5984');
+}
 function setteErrorHandler($e) {
     echo $e->getMessage() . "<br>" . PHP_EOL;
 }

directory:b/lib/springy (new)
--- /dev/null
+++ b/lib/springy