diff --git a/gui/dags.html b/gui/dags.html index 70885ea..b4765e2 100644 --- a/gui/dags.html +++ b/gui/dags.html @@ -130,6 +130,9 @@ DAGittyControl.getView().closeDialog() } } + + // Attempt to load DAG from the URL parameter "adjmatrix" + loadDagFromUrlParameter(); } window.onload = initialize; diff --git a/gui/js/main.js b/gui/js/main.js index 952690a..fea51da 100644 --- a/gui/js/main.js +++ b/gui/js/main.js @@ -429,6 +429,27 @@ function loadDAGFromTextData(){ document.getElementById("adj_matrix").style.backgroundColor="#fff"; } +// Read a Dag from a URL parameter +// e.g. http://www.dagitty.net/dags.html?adjmatrix=B%201%20@1.400,-1.460%0AD%20O%20@1.400,1.621%0A%0AB%20D +function loadDagFromUrlParameter(){ + var adjMatrixFromUrlParameter = getUrlParameter("adjmatrix"); + if((adjMatrixFromUrlParameter!==undefined) && (adjMatrixFromUrlParameter!='')){ + document.getElementById("adj_matrix").value = adjMatrixFromUrlParameter; + loadDAGFromTextData(); + } +} + +function getUrlParameter(sParam) { + var sPageURL = decodeURIComponent(window.location.search.substring(1)); + var sURLVariables = sPageURL.split('&'); + for (var i = 0; i < sURLVariables.length; i++) { + var sParameterName = sURLVariables[i].split('='); + if (sParameterName[0] === sParam) { + return sParameterName[1] === undefined ? true : sParameterName[1]; + } + } +}; + function generateSpringLayout(){ var layouter = new GraphLayouter.Spring( Model.dag ); _.each(Model.dag.edges,function(e){delete e["layout_pos_x"];delete e["layout_pos_y"]})