File size: 2,610 Bytes
f0806e2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Export Graphe Sigma</title>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css">
<script src="https://unpkg.com/graphology@0.25.1/dist/graphology.umd.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/sigma.js/2.4.0/sigma.min.js"></script>
<style>
body { margin:0; font-family: Arial, sans-serif; }
#sigma-container { width: 100%; height: 70vh; border: 1px solid #ccc; border-radius: 5px; margin-bottom: 1rem; }
.legend-card { margin-bottom: 1rem; }
.legend-card .card-body { max-height: 40vh; overflow-y: auto; }
.legend-color { display:inline-block; width:20px; height:20px; border-radius:3px; }
</style>
</head>
<body>
<div class="container-fluid p-3">
<div class="row mb-2">
<div class="col">
<h3 class="text-center" id="node_name"></h3>
</div>
</div>
<div class="row">
<!-- Colonne des légendes -->
<div class="col-lg-3">
<div class="card legend-card">
<div class="card-header"><strong>Légende - Nœuds</strong></div>
<div class="card-body" id="legend-nodes"></div>
</div>
<div class="card legend-card">
<div class="card-header"><strong>Légende - Relations</strong></div>
<div class="card-body" id="legend-edges"></div>
</div>
</div>
<!-- Colonne du graphe -->
<div class="col-lg-9">
<div id="sigma-container"></div>
</div>
</div>
</div>
<script>
// Ces variables seront remplacées dynamiquement
const GRAPH_DATA = `{{GRAPH_DATA}}`;
const graphData = JSON.parse(GRAPH_DATA);
const LEGEND_HTML_NODES = `{{LEGEND_HTML_NODES}}`;
const LEGEND_HTML_EDGES = `{{LEGEND_HTML_EDGES}}`;
const NODE_NAME = `{{NODE_NAME}}`;
// On injecte les légendes
document.getElementById("legend-nodes").innerHTML = LEGEND_HTML_NODES;
document.getElementById("legend-edges").innerHTML = LEGEND_HTML_EDGES;
document.getElementById("node_name").textContent = NODE_NAME ? ("Composante connexe du noeud : " + NODE_NAME) : "";
// Reconstruction du graphe Sigma
const Graph = window.graphology.Graph;
const graph = new Graph();
graphData.nodes.forEach(n => graph.addNode(n.id, n));
graphData.edges.forEach(e => graph.addEdge(e.source, e.target, e));
new Sigma(graph, document.getElementById("sigma-container"));
</script>
</body>
</html>
|