Skip to content

Commit 2b87ca3

Browse files
fsteeglobid@emphytos
authored andcommitted
Set up visualization of team.json data with vis.js network
Vis.js: https://visjs.org/, https://lobid.org/gnd/116994061#rels See #427
1 parent a82d587 commit 2b87ca3

File tree

7 files changed

+109
-1
lines changed

7 files changed

+109
-1
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,9 @@ typings/
6464
# gatsby files
6565
.cache/
6666
public
67+
bin
68+
target
69+
tmp
6770

6871
# Mac files
6972
.DS_Store

gatsby/lobid/gatsby-node.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,9 @@ exports.createPages = ({ actions }) => {
77
path: "/team",
88
component: path.resolve(`./src/pages/team-de.js`)
99
});
10+
11+
createPage({
12+
path: "/visual",
13+
component: path.resolve(`./src/pages/visual.js`)
14+
});
1015
};

gatsby/lobid/package-lock.json

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

gatsby/lobid/package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@
2525
"react-dom": "^16.12.0",
2626
"reactstrap": "^8.4.1",
2727
"typescript": "^3.6.0-beta",
28-
"utf-8-validate": "^5.0.2"
28+
"utf-8-validate": "^5.0.2",
29+
"vis-data": "^7.1.1",
30+
"vis-network": "^8.5.4"
2931
},
3032
"devDependencies": {
3133
"prettier": "^1.19.1"
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import React, { Component, createRef } from "react";
2+
import { DataSet, Network} from 'vis-network/standalone/esm/vis-network';
3+
4+
import "./css/lobid.css";
5+
6+
export class Visual extends Component {
7+
8+
constructor(props) {
9+
super(props);
10+
this.props = props;
11+
this.state = {
12+
infoToggled: false
13+
};
14+
this.network = {};
15+
this.appRef = createRef();
16+
}
17+
18+
componentDidMount() {
19+
console.log("Props", this.props)
20+
21+
var ns = [
22+
{ id: 'm', label: "Members","shape":"dot","size":"5"},
23+
{ id: 'o', label: "Offers","shape":"dot","size":"5"}
24+
];
25+
this.props.members.forEach((item,index) => { ns.push({ id: "m"+index, label: item.member.name, "shape":"box" }); });
26+
this.props.products.forEach((item,index) => { ns.push({ id: "o"+index, label: item.name, "shape":"box" }); });
27+
const nodes = new DataSet(ns);
28+
29+
var es = [];
30+
this.props.members.forEach((item,index) => { es.push({ from: 'm', to: 'm'+index }); });
31+
this.props.products.forEach((item,index) => { es.push({ from: 'o', to: 'o'+index }); });
32+
const edges = new DataSet(es);
33+
34+
const data = {
35+
nodes: nodes,
36+
edges: edges
37+
};
38+
const options = {};
39+
this.network = new Network(this.appRef.current, data, options);
40+
}
41+
42+
render() {
43+
return (
44+
<div id="lobid-network" ref={this.appRef} />
45+
);
46+
}
47+
}

gatsby/lobid/src/pages/visual.js

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import React from "react";
2+
import { graphql } from "gatsby";
3+
import { Visual } from "../components/visual.html";
4+
5+
export default ({ data }) => (
6+
<Visual
7+
members = {data.dataJson.member}
8+
products = {data.dataJson.makesOffer}
9+
/>
10+
);
11+
12+
export const query = graphql`
13+
query {
14+
dataJson {
15+
makesOffer {
16+
alternateName {
17+
de
18+
}
19+
id
20+
name
21+
}
22+
member {
23+
member {
24+
id
25+
image
26+
name
27+
}
28+
roleName {
29+
de
30+
}
31+
}
32+
}
33+
}
34+
`;

gatsby/lobid/static/stylesheets/lobid.css

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
#lobid-network {
2+
width: 900px;
3+
height: 600px;
4+
border: 1px solid lightgray;
5+
margin: 20px;
6+
}
7+
18
#header {
29
width: 100%;
310
background-image: url('https://lobid.org/images/clouds.jpg');

0 commit comments

Comments
 (0)