| <!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"> |
| |
| <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> |
|
|
| |
| <div class="col-lg-9"> |
| <div id="sigma-container"></div> |
| </div> |
| </div> |
| </div> |
| <script> |
| |
| 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}}`; |
| |
| |
| 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) : ""; |
| |
| 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> |
|
|