diff --git a/app/src/components/DiseaseGraph.js b/app/src/components/DiseaseGraph.js
index 2b4f538..b613573 100644
--- a/app/src/components/DiseaseGraph.js
+++ b/app/src/components/DiseaseGraph.js
@@ -27,15 +27,24 @@ const DiseaseGraph = ({terms, setTerms, results}) =>
*/
const render = id =>
{
+ const term = nodes[id];
const isTerm = terms.some(({id: termId}) => termId === id);
const isDisease = nodes[id].types.includes(termTypes.disease);
return (
- {nodes[id].name}
+
+ {nodes[id].name}
+
);
};
@@ -43,17 +52,23 @@ const DiseaseGraph = ({terms, setTerms, results}) =>
* Gère le clic sur un nœud du graphe.
*
* @param id Identifiant du nœud cliqué.
+ * @param ev Événement DOM décrivant le clic.
*/
- const handleNodeClick = id =>
+ const handleNodeClick = (id, ev) =>
{
const result = results.find(({id: termId}) => termId === id);
const termIndex = terms.findIndex(({id: termId}) => termId === id);
if (result !== undefined)
{
- if (termIndex >= 0)
+ if (!ev.ctrlKey)
{
- // Retrait d’un terme déjà dans la requête
+ // Clic normal : Ouverture de la ressource
+ window.open(result.url, '_blank');
+ }
+ else if (termIndex >= 0)
+ {
+ // Ctrl-clic : Retrait d’un terme déjà dans la requête
setTerms([
...terms.slice(0, termIndex),
...terms.slice(termIndex + 1)
@@ -61,7 +76,7 @@ const DiseaseGraph = ({terms, setTerms, results}) =>
}
else
{
- // Ajout d’un nouveau terme dans la requête
+ // Ctrl-clic : Ajout d’un nouveau terme dans la requête
setTerms(terms.concat([result]));
}
}
diff --git a/app/src/components/Graph.js b/app/src/components/Graph.js
index 6976d0c..d8f6730 100644
--- a/app/src/components/Graph.js
+++ b/app/src/components/Graph.js
@@ -268,13 +268,13 @@ const Graph = ({
}
};
- const mouseUp = () =>
+ const mouseUp = ev =>
{
if (dragElement !== null)
{
if (dragClick)
{
- onNodeClick(dragNode);
+ onNodeClick(dragNode, ev);
}
dragNode = -1;