Better graph, include social media in schema for agencies
Better graph, include social media in schema for agencies


Former-commit-id: c8de24923a04e8b3ef19fcae4db577255ebef88f

--- 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
@@ -4,6 +4,7 @@
 include_header();
 
 function displayValue($key, $value, $mode) {
+    global $db;
     if ($mode == "view") {
         if (is_array($value)) {
             echo "<tr><td>$key</td><td><ol>";
@@ -30,8 +31,16 @@
         } else {
             if (strpos($key, "_") === 0) {
                 echo"<input type='hidden' id='$key' name='$key' value='$value'/>";
-            } if (strpos($key, "has") === 0) {
-                echo "<label for='$key'><input type='checkbox' id='$key' name='$key' checked='$value'> $key</label>";
+            } else if ($key == "parentOrg") {
+                echo "<label for='$key'>$key</label><select  id='$key' name='$key'>";
+                  $rows = $db->get_view("app", "byDeptStateName")->rows;
+    //print_r($rows);
+    foreach ($rows as $row) {
+        echo "<option value='{$row->value}'".(($row->value == $value) ? "SELECTED":"")." >".str_replace("Department of ","",$row->key)."</option>";
+    }
+    echo" </select>";
+            } else if (strpos($key, "has") === 0) {
+                echo "<label for='$key'><input type='checkbox' id='$key' name='$key' ".(($value=='true')?"checked='$value'":"")."> $key</label>";
             } else {
                 echo "<label>$key</label><input  class='input-text' type='text' id='$key' name='$key' value='$value'/>";
                 if ((strpos($key,"URL") > 0 || $key == 'website')&& $value != "") {
@@ -47,10 +56,24 @@
 }
 
 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") {
+                if (strpos($defaultField, "has") === 0) {
+            $row[$defaultField] = "false";
+                
+                } else {
             $row[$defaultField] = "";
+                }
+            
+            }
+             if ($schemas['agency']['properties'][$defaultField]['type'] == "array") {
+                
+            $row[$defaultField] = Array("");
+            }
+        }
     }
     return $row;
 }

file:b/graph.php (new)
--- /dev/null
+++ b/graph.php
@@ -1,1 +1,58 @@
+<?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');
+echo "nodes[\"fedg\"] = graph.newNode({label: \"Federal Government - Commonwealth of Australia\"});" . PHP_EOL;
+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", "byDeptStateName", null, true)->rows;
+    //print_r($rows);
+    foreach ($rows as $row) {
+        echo "graph.newEdge(nodes[\"fedg\"], nodes['{$row->value}'], {color: '#00A0B0'});" . 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: '#FFA0B0'});" . PHP_EOL;
+    }
+} catch (SetteeRestClientException $e) {
+    setteErrorHandler($e);
+}
+?>
+    window.onload = function() {
+        $(document).ready(function() {
+            var springy = $('#springydemo').springy({
+                graph: graph
+            });
+        });
+    };
+</script>
+
+<canvas id="springydemo" width="1260" height="680" />
+<?php
+//include_footer();
+?>
+
+

--- a/include/couchdb.inc.php
+++ b/include/couchdb.inc.php
@@ -9,6 +9,21 @@
     $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->byDeptStateName->map = "function(doc) {  
+            if (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 +67,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

file:a/robots.txt -> file:b/robots.txt
--- 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,27 @@
     "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"),
+   "hasRSS"=> Array("type" => "string", "required" => true, "x-title"=> "Agency Name", "description" => "Agency Name, most recent and broadest"),
+   "hasMailingList"=> Array("type" => "string", "required" => true, "x-title"=> "Agency Name", "description" => "Agency Name, most recent and broadest"),
+   "hasTwitter"=> Array("type" => "string", "required" => true, "x-title"=> "Agency Name", "description" => "Agency Name, most recent and broadest"),
+   "hasFacebook"=> Array("type" => "string", "required" => true, "x-title"=> "Agency Name", "description" => "Agency Name, most recent and broadest"),
+        "hasYouTube"=> Array("type" => "string", "required" => true, "x-title"=> "Agency Name", "description" => "Agency Name, most recent and broadest"),
+   
     ),
     /*"org":{"type":"object",
 		"properties":{