diff --git a/src/Bundle/ChillPersonBundle/Controller/HouseholdController.php b/src/Bundle/ChillPersonBundle/Controller/HouseholdController.php index 79391e904..1b9824184 100644 --- a/src/Bundle/ChillPersonBundle/Controller/HouseholdController.php +++ b/src/Bundle/ChillPersonBundle/Controller/HouseholdController.php @@ -167,6 +167,23 @@ class HouseholdController extends AbstractController ); } + /** + * @Route( + * "/{household_id}/relationship", + * name="chill_person_household_relationship", + * methods={"GET", "HEAD"} + * ) + * @ParamConverter("household", options={"id" = "household_id"}) + */ + public function showRelationship(Request $request, Household $household) + { + return $this->render('@ChillPerson/Household/relationship.html.twig', + [ + 'household' => $household + ] + ); + } + /** * @Route( * "/{household_id}/members/metadata/edit", diff --git a/src/Bundle/ChillPersonBundle/Menu/HouseholdMenuBuilder.php b/src/Bundle/ChillPersonBundle/Menu/HouseholdMenuBuilder.php index c9eade17a..c6a76445d 100644 --- a/src/Bundle/ChillPersonBundle/Menu/HouseholdMenuBuilder.php +++ b/src/Bundle/ChillPersonBundle/Menu/HouseholdMenuBuilder.php @@ -50,6 +50,13 @@ class HouseholdMenuBuilder implements LocalMenuBuilderInterface ]]) ->setExtras(['order' => 30]); + $menu->addChild($this->translator->trans('household.Relationship'), [ + 'route' => 'chill_person_household_relationship', + 'routeParameters' => [ + 'household_id' => $household->getId() + ]]) + ->setExtras(['order' => 40]); + } diff --git a/src/Bundle/ChillPersonBundle/Resources/public/page/vis/index.js b/src/Bundle/ChillPersonBundle/Resources/public/page/vis/index.js new file mode 100644 index 000000000..f11e930c0 --- /dev/null +++ b/src/Bundle/ChillPersonBundle/Resources/public/page/vis/index.js @@ -0,0 +1,32 @@ +import vis from 'vis-network/dist/vis-network.min'; + +require('./scss/vis.scss'); + +// create an array with nodes +let nodes = new vis.DataSet([ + { id: 1, label: "Node 1" }, + { id: 2, label: "Node 2" }, + { id: 3, label: "Node 3" }, + { id: 4, label: "Node 4" }, + { id: 5, label: "Node 5", cid: 1 }, +]); + +// create an array with edges +let edges = new vis.DataSet([ + { from: 1, to: 3 }, + { from: 1, to: 2 }, + { from: 2, to: 4 }, + { from: 2, to: 5 }, + { from: 3, to: 3 }, +]); + +// create a network +let container = document.getElementById("graph-relationship"); +let data = { + nodes: nodes, + edges: edges, +}; +let options = {}; + +// +let network = new vis.Network(container, data, options); diff --git a/src/Bundle/ChillPersonBundle/Resources/public/page/vis/scss/vis.scss b/src/Bundle/ChillPersonBundle/Resources/public/page/vis/scss/vis.scss new file mode 100644 index 000000000..3d29c47ce --- /dev/null +++ b/src/Bundle/ChillPersonBundle/Resources/public/page/vis/scss/vis.scss @@ -0,0 +1,5 @@ +div#graph-relationship { + margin: 2em auto; + height: 500px; + border: 1px solid lightgray; +} diff --git a/src/Bundle/ChillPersonBundle/Resources/views/Household/relationship.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/Household/relationship.html.twig new file mode 100644 index 000000000..5d5fc77af --- /dev/null +++ b/src/Bundle/ChillPersonBundle/Resources/views/Household/relationship.html.twig @@ -0,0 +1,27 @@ +{% extends '@ChillPerson/Household/layout.html.twig' %} + +{% block title 'household.Relationship'|trans %} + +{% block content %} +