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 != "") {
@@ -52,8 +61,13 @@
foreach ($defaultFields as $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") {
--- /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;
}
--- /dev/null
+++ b/lib/springy
--- a/schemas/agency.json.php
+++ b/schemas/agency.json.php
@@ -20,6 +20,12 @@
"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":{