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
--- a/getAgency.php
+++ b/getAgency.php
@@ -47,10 +47,19 @@
}
function addDefaultFields($row) {
- $defaultFields = Array("name","orgType","parentOrg");
+ global $schemas;
+ $defaultFields = array_keys($schemas['agency']['properties']);
foreach ($defaultFields as $defaultField) {
- if (!isset($row[$defaultField]))
+ if (!isset($row[$defaultField])) {
+ if ($schemas['agency']['properties'][$defaultField]['type'] == "string") {
+
$row[$defaultField] = "";
+ }
+ if ($schemas['agency']['properties'][$defaultField]['type'] == "array") {
+
+ $row[$defaultField] = Array("");
+ }
+ }
}
return $row;
}
--- /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
--- a/robots.txt
+++ b/robots.txt
@@ -2,3 +2,4 @@
# www.google.com/support/webmasters/bin/answer.py?hl=en&answer=156449
User-agent: *
+Disallow: /admin/
--- a/schemas/agency.json.php
+++ b/schemas/agency.json.php
@@ -5,8 +5,21 @@
"type" => "object",
"properties" => Array(
"name" => Array("type" => "string", "required" => true, "x-title"=> "Agency Name", "description" => "Agency Name, most recent and broadest"),
- "othernames" => Array("type" => "array", "required" => true, "x-title" => "Agency Past/Other Names", "description" => "Agency Names",
+ "otherNames" => Array("type" => "array", "required" => true, "x-title" => "Agency Past/Other Names", "description" => "Agency Names",
"items" => Array("type" => "string")),
+ "orgType"=> Array("type" => "string", "required" => true, "x-title"=> "Agency Name", "description" => "Agency Name, most recent and broadest"),
+ "parentOrg"=> Array("type" => "string", "required" => true, "x-title"=> "Agency Name", "description" => "Agency Name, most recent and broadest"),
+ "website"=> Array("type" => "string", "required" => true, "x-title"=> "Agency Name", "description" => "Agency Name, most recent and broadest"),
+ "abn" => Array("type" => "string", "required" => true, "x-title"=> "Agency Name", "description" => "Agency Name, most recent and broadest"),
+ "contractListURL" => Array("type" => "string", "required" => true, "x-title"=> "Agency Name", "description" => "Agency Name, most recent and broadest"),
+ "grantsReportingURL" => Array("type" => "string", "required" => true, "x-title"=> "Agency Name", "description" => "Agency Name, most recent and broadest"),
+ "annualReportURL" => Array("type" => "string", "required" => true, "x-title"=> "Agency Name", "description" => "Agency Name, most recent and broadest"),
+ "consultanciesURL" => Array("type" => "string", "required" => true, "x-title"=> "Agency Name", "description" => "Agency Name, most recent and broadest"),
+ "legalExpenditureURL"=> Array("type" => "string", "required" => true, "x-title"=> "Agency Name", "description" => "Agency Name, most recent and broadest"),
+ "recordsListURL"=> Array("type" => "string", "required" => true, "x-title"=> "Agency Name", "description" => "Agency Name, most recent and broadest"),
+ "FOIDocumentsURL"=> Array("type" => "string", "required" => true, "x-title"=> "Agency Name", "description" => "Agency Name, most recent and broadest"),
+ "infoPublicationSchemeURL"=> Array("type" => "string", "required" => true, "x-title"=> "Agency Name", "description" => "Agency Name, most recent and broadest"),
+ "appointmentsURL"=> Array("type" => "string", "required" => true, "x-title"=> "Agency Name", "description" => "Agency Name, most recent and broadest"),
),
/*"org":{"type":"object",
"properties":{