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
--- /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;
}
--- /dev/null
+++ b/lib/springy