Add conflict resolver
Add conflict resolver


Former-commit-id: 4f13efa7c551e75c2c0a380c4657230679c2d04b

  <?php
 
  include_once('../include/common.inc.php');
  include_header();
  require_once '../lib/php-diff/lib/Diff.php';
  require_once '../lib/php-diff/lib/Diff/Renderer/Html/SideBySide.php';
 
  $db = $server->get_db('disclosr-agencies');
 
  try {
  $rows = $db->get_view("app", "getConflicts", null, true)->rows;
  //print_r($rows);
  foreach ($rows as $row) {
  echo "<h2>".$row->id."</h2>";
  $request = Requests::get($serverAddr."disclosr-agencies/".$row->id);
  $origSort = object_to_array(json_decode($request->body));
  ksort($origSort);
  $origDoc = explode(",",json_encode($origSort));
  foreach($row->value as $conflictRev) {
  $conflictURL = $serverAddr."disclosr-agencies/".$row->id."?rev=".$conflictRev;
  $request = Requests::get($conflictURL);
  $conflictSort = object_to_array(json_decode($request->body));
  ksort($conflictSort);
  $conflictDoc = explode(",",json_encode($conflictSort));
  echo "curl -X DELETE ".$conflictURL."<br>".PHP_EOL;
  // Options for generating the diff
  $options = array(
  //'ignoreWhitespace' => true,
  //'ignoreCase' => true,
  );
 
  // Initialize the diff class
  $diff = new Diff($conflictDoc, $origDoc, $options);
 
  // Generate a side by side diff
  $renderer = new Diff_Renderer_Html_SideBySide;
  echo $diff->Render($renderer);
  }
  die();
 
  }
  } catch (SetteeRestClientException $e) {
  setteErrorHandler($e);
  }
 
  include_footer();
  ?>
 
  <?php
 
  $nodes = Array(Array("id" => "gov", "label" => "Federal Government"));
  $edges = Array();
 
  function addEdge($source, $target) {
  global $edges;
  $edges[] = Array("id" => md5($source . $target), "source" => $source, "target" => $target);
  }
 
  function addNode($id, $label, $pid) {
  global $nodes;
  $nodes[] = Array("id" => $id, "label" => $label , "pid" => $pid);
  }
 
  function addChildren($parentID, $parentXML) {
  foreach ($parentXML as $childXML) {
 
  if ($childXML->getName() == "organization" || $childXML->getName() == "organizationalUnit" || $childXML->getName() == "person") {
  $attr = $childXML->attributes();
  $id = $attr['UUID'];
  if ($childXML->getName() == "organization" || $childXML->getName() == "organizationalUnit") {
 
  $label = $childXML->name;
  } else if ($childXML->getName() == "person") {
  $label = $childXML->fullName;
  }
  addNode($id, $label, $parentID);
  addEdge($id, $parentID);
  addChildren($id, $childXML);
  }
  }
  }
 
  if (file_exists('directoryexport.xml')) {
  $xml = simplexml_load_file('directoryexport.xml');
 
  addChildren("gov", $xml);
  } else {
  exit('Failed to open directoryexport.xml');
  }
  header('Content-Type: application/gexf+xml');
  echo '<?xml version="1.0" encoding="UTF-8"?>
  <gexf xmlns="http://www.gexf.net/1.2draft" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.gexf.net/1.2draft http://www.gexf.net/1.2draft/gexf.xsd" version="1.2">
  <graph mode="static" defaultedgetype="directed">
  <nodes>';
  foreach ($nodes as $node) {
  echo ' <node id="' . $node['id'] . '" label="' . htmlentities($node['label'],ENT_XML1) . '" ' . (isset($node['pid']) ? 'pid="' . $node['pid'] . '"' : "") . ' />';
  }
  echo '</nodes>
  <edges>';
  foreach ($edges as $edge) {
  echo ' <edge id="' . $edge['id'] . '" source="' . $edge['source'] . '" target="' . $edge['target'] . '" />';
  }
  echo '</edges>
  </graph>
  </gexf>';
  ?>